JavaScript에는 부동 소수점 유형이라는 숫자 유형이 하나만 있습니다. JavaScript는 내부적으로 숫자를 64비트 부동 소수점 유형으로 저장하므로 실제로 JavaScript에는 정수 유형이 없습니다. JavaScript의 숫자 형식에 따르면 표현 가능한 정수의 범위는 경계값을 포함하여 "[-2^53 ~ 2^53]"이지만 배열 인덱스, 비트 연산자 등은 32를 사용한다는 점에 유의해야 합니다. -비트 정수.
이 튜토리얼의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, Dell G3 컴퓨터.
JavaScript에는 내부적으로 64비트 부동 소수점 숫자로 표현되는 숫자 유형이 하나만 있습니다. 따라서 실제로 JavaScript에는 정수 유형이 없습니다.
print(3/2); // 1.5
값이 부동소수점 숫자로 처리되는 것을 볼 수 있습니다.
JavaScript는 정수나 소수에 관계없이 내부적으로 64비트 부동 소수점 유형으로 숫자를 저장하기 때문입니다. 혼란스러운 점은 일부 비트 연산을 실행하려면 정수가 필요하므로 64비트 부동 소수점 숫자가 자동으로 32비트 정수로 변환된다는 것입니다. 그런 다음 비트 연산을 수행합니다. 자바스크립트에서는 1과 1.0이 같습니다
1 == 1.0 true 0.1+0.2 == 0.3 false 0.3/0.1 = 2.99999999996 (0.3-0.2) === (0.2-0.1) false
간단히 말해서 소수가 포함된 연산을 수행할 때는 주의하세요
자바스크립트의 숫자 형식(IEEE-754에서 정의한 64비트 부동 소수점 형식)에 따르면 정수의 범위는 표현할 수 있는 값은 경계값을 포함하여 [-2^53 ~ 2^53]입니다. 그러나 배열 인덱싱, 비트 연산자 등은 32비트 정수를 사용한다는 점에 유의해야 합니다.
부동소수점 값의 가장 높은 정밀도는 소수점 이하 17자리이지만, 산술 계산을 수행할 때 그 정확도는 정수에 비해 훨씬 낮습니다. 예를 들어 0.2에 0.1을 더한 결과는 0.3이 아니라 0.30000000000000004가 됩니다. 이 작은 반올림 오류로 인해 특정 부동 소수점 값을 테스트하는 것이 불가능합니다.
이진 부동 소수점 숫자는 1/2, 1/8 등을 정확하게 나타낼 수 있지만 1/10, 1/100 등을 정확하게 나타낼 수 없기 때문입니다. 따라서 0.1과 같은 단순한 숫자는 정확하게 표현할 수 없습니다.
부동소수점 숫자의 정밀도 문제로 인해 비교 시 예상치 못한 결과가 나올 수 있습니다.
print((0.1+0.2) == 0.3); // false print(0.1+0.2); // 0.30000000000000004 print(0.3); // 0.3 print((10/3-3) == (1/3));// false print(10/3-3); // 0.3333333333333335 print(1/3); // 0.3333333333333333
정수의 경우 53자리 이내의 정수를 사용하면 정확도 문제가 없으므로 안심하고 사용하실 수 있습니다.
정수는 10진수로 표시되는 것 외에도 8진수(기수 8) 또는 16진수(기수 16)의 리터럴로 표시될 수도 있습니다. 그 중 8진수 리터럴의 첫 번째 숫자는 0이어야 하며 그 뒤에는 8진수 시퀀스(0~7)가 와야 합니다. 리터럴의 값이 범위를 초과하는 경우 선행 0은 무시되고 다음 값은 10진수 값으로 해석됩니다.
8진수 리터럴은 엄격 모드에서 유효하지 않으며 이 모드를 지원하는 JavaScript 엔진에서 오류가 발생하게 됩니다.
16진수 리터럴 값의 처음 두 자리는 0x여야 하며 그 뒤에는 16진수 숫자(0~9 및 A~F)가 와야 합니다. 그 중 A부터 F까지의 문자는 대문자 또는 소문자일 수 있습니다.
부동 소수점 값을 저장하려면 정수 값을 저장할 때보다 두 배의 메모리 공간이 필요하므로 ECMAScript는 부동 소수점 값을 정수 값으로 변환하는 데 시간을 낭비하지 않습니다. 분명히 소수점 뒤에 숫자가 없으면 값은 정수 값으로 저장될 수 있습니다. 마찬가지로, 부동 소수점 값 자체가 정수(예: 1.0)를 나타내는 경우 값도 정수로 변환됩니다.
숫자 개체
문자열 값이 문자열 개체에 해당하는 것처럼 숫자 값에도 해당하는 숫자 개체, 즉 Number가 있습니다.
Numbers는 숫자 값에 해당하는 속성을 직접 호출할 수도 있습니다.
print((6).toString()); // 6
이 예에서는 숫자 값을 괄호 안에 추가해야 합니다. 그렇지 않으면 마침표가 소수점으로 간주됩니다.
Number의 사용은 String의 사용과 유사하며 유형 변환, 숫자 객체 생성 등을 수행할 수 있습니다.
형 변환을 수행할 때 변환에 실패하면, 즉 Number는 NaN을 반환합니다. 숫자 객체를 사용할 때도 마찬가지입니다.
var a = Number('x'); print(typeof a, a); // number NaN var b = new Number('x'); print(typeof b, b); // object [Number: NaN]
Number에는 5가지 특수 속성(읽기 전용)이 있습니다. 즉:
MAX_VALUE: 양수의 최대값, 더 크면 무한대가 됩니다.
MIN_VALUE: 양수의 최소값 양수, 작으면 Infinity 가 됩니다 0
NaN : 숫자가 아님
NEGATIVE_INFINITY : 음의 무한대, 즉 -Infinity
POSITIVE_INFINITY : 양의 무한대, 즉 Infinity
print(Number.MAX_VALUE); // 1.7976931348623157e+308 print(Number.MIN_VALUE); // 5e-324 print(Number.NaN); // NaN print(Number.NEGATIVE_INFINITY); // -Infinity print(Number.POSITIVE_INFINITY); // Infinity
Infinity
숫자 연산 결과 자바스크립트가 표현할 수 있는 숫자의 상한을 초과한 경우 결과는 특수 무한대 값(Infinity)입니다. JavaScript가 나타낼 수 있는 결과는 -Infinity입니다.
연산 결과가 무한히 0에 가까우며 JavaScript가 표현할 수 있는 최소값보다 작은 경우(언더플로우) 결과는 0입니다. 음수가 언더플로우인 경우 결과는 -0입니다. +0입니다.
JavaScript는 읽기 전용 변수인 전역 변수 Infinity와 NaN을 미리 정의합니다.
由于内存的限制,ECMAScript并不能保存世界上所有的数值。ECMAScript能够表示的最小数值保存在Number.MIN_VALUE中——在大多数浏览器中,这个值是5e-324;能够表示的最大数值保存在Number.MAX_VALUE中——在大多数浏览器中,这个值是1.7976931348623157e+308。如果某次计算的结果得到了一个超出JavaScript数值范围的值,那么这个数值将被自动转换成特殊的Infinity值。具体来说,如果这个数值是负数,则会被转换成-Infinity(负无穷),如果这个数值是正数,则会被转换成Infinity(正无穷)。
如果某次计算返回了正或负的Infinity值,那么该值将无法继续参与下一次的计算,因为Infinity不是能够参与计算的数值。要想确定一个数值是不是有穷的(换句话说,是不是位于最小和最大的数值之间),可以使用isFinite()函数。
NaN
NaN是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。
对于NaN,要记住的一点是,只要运算中出现NaN,结果就一定是NaN,就算是"NaN*0"这样的运算,也一样是NaN。只要对NaN运行比较运行,结果就一定是false,就算"NaN==NaN"/"NaN!=NaN"等,都是false。
要判断一个值是否为NaN,可以使用isNaN()函数:
print(isNaN(NaN)); // true print(isNaN(0/0)); // true
在基于对象调用isNaN()函数时,会首先调用对象的valueOf()方法,然后确定该方法返回的值是否可以转换为数值。如果不能,则基于这个返回值再调用toString()方法,再测试返回值。
也可以使用x!==x来判断x是否为NaN,只有在x为NaN的时候,这个表达式的值才为true。
inFinite()
isFinite函数用于判断一个数是否为“正常”的数值:
print(isFinite(Number.NaN)); // false print(isFinite(Number.NEGATIVE_INFINITY)); // false print(isFinite(Number.POSITIVE_INFINITY)); // false
除了以上3个特殊值外,其他值的结果都为true
假如x是一个普通数值,则有:
x/0 = Infinity x%0 = NaN x/Infinity = 0 x%Infinity = x 0/0 = NaN 0%0 = NaN Infinity/x = Infinity Infinity%x = NaN Infinity/Infinity = NaN Infinity%Infinity = NaN
完整输出如下:
print(0 / 0); // NaN print(3 / 0); // Infinity print(Infinity / 0); // Infinity print(0 % 0); // NaN print(3 % 0); // NaN print(Infinity % 0); // NaN ---------- print(0 / 4); // 0 print(3 / 4); // 0.75 print(Infinity / 4); // Infinity print(0 % 4); // 0 print(3 % 4); // 3 print(Infinity % 4); // NaN ---------- print(0 / Infinity); // 0 print(3 / Infinity); // 0 print(Infinity / Infinity); // NaN print(0 % Infinity); // 0 print(3 % Infinity); // 3 print(Infinity % Infinity); // NaN
负零与正零
负零与正零的值相等,不过毕竟带有符号,在一些运算中会有符号方面的差别,比如:
var zero = 0; var negz = -0;
此时,zero 等于 negz , 但1/zero 却不等于 1/negz。
【相关推荐:javascript视频教程、编程基础视频】
위 내용은 자바스크립트 숫자 유형에는 몇 가지 유형이 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

React는 Meta가 사용자 인터페이스를 구축하기 위해 개발 한 JavaScript 라이브러리이며 핵심은 구성 요소 개발 및 가상 DOM 기술입니다. 1. 구성 요소 및 상태 관리 : React는 구성 요소 (기능 또는 클래스) 및 후크 (예 : usestate)를 통해 상태를 관리하여 코드 재사용 및 유지 보수를 개선합니다. 2. 가상 DOM 및 성능 최적화 : 가상 DOM을 통해 실제 DOM을 효율적으로 업데이트하여 성능을 향상시킵니다. 3. 수명주기 및 후크 : 후크 (예 : 사용률) 기능 구성 요소가 수명주기를 관리하고 부작용 작업을 수행 할 수 있도록합니다. 4. 사용 예 : 기본 Helloworld 구성 요소에서 고급 글로벌 주 관리 (Usecontext 및

React Ecosystem에는 주정부 관리 라이브러리 (예 : Redux), 라우팅 라이브러리 (예 : Reactrouter), UI 구성 요소 라이브러리 (예 : 재료 -UI), 테스트 도구 (예 : Jest) 및 Webpack과 같은 빌드 도구 (예 : Webpack)가 포함됩니다. 이러한 도구는 개발자가 애플리케이션을 효율적으로 개발하고 유지하고 코드 품질 및 개발 효율성을 향상시킬 수 있도록 함께 작동합니다.

React는 사용자 인터페이스를 구축하기 위해 Facebook에서 개발 한 JavaScript 라이브러리입니다. 1. 구성 요소 및 가상 DOM 기술을 채택하여 UI 개발의 효율성과 성능을 향상시킵니다. 2. RECT의 핵심 개념에는 구성 요소화, 상태 관리 (예 : usestate 및 useeffect) 및 가상 DOM의 작동 원리가 포함됩니다. 3. 실제 응용 분야에서 React는 기본 구성 요소 렌더링에서 고급 비동기 데이터 처리에 이르기까지 지원됩니다. 4. 주요 속성 추가 또는 잘못된 상태 업데이트를 잊어 버린 것과 같은 일반적인 오류는 ReactDevTools 및 Logs를 통해 디버깅 할 수 있습니다. 5. 성능 최적화 및 모범 사례에는 React.Memo, 코드 세분화 및 코드를 읽기 쉽게 유지하고 신뢰성을 유지하는 것이 포함됩니다.

HTML에서 React의 적용은 구성 요소화 및 가상 DOM을 통한 웹 개발의 효율성과 유연성을 향상시킵니다. 1) 반응 구성 요소화 아이디어는 UI를 재사용 가능한 단위로 나누어 관리를 단순화합니다. 2) 가상 DOM 최적화 성능, Diffing 알고리즘을 통해 DOM 작업을 최소화합니다. 3) JSX Syntax는 JavaScript로 HTML을 작성하여 개발 효율성을 향상시킵니다. 4) usestate 후크를 사용하여 상태를 관리하고 동적 콘텐츠 업데이트를 실현하십시오. 5) 최적화 전략에는 불필요한 렌더링을 줄이기 위해 React.Memo 및 Usecallback 사용이 포함됩니다.

React의 주요 기능에는 구성 요소화 사고, 상태 관리 및 가상 DOM이 포함됩니다. 1) 구성 요소화에 대한 아이디어를 통해 UI를 재사용 가능한 부품으로 나누기 위해 코드 가독성과 유지 관리 가능성을 향상시킵니다. 2) 상태 관리는 상태 및 소품을 통해 동적 데이터를 관리하고 변경 UI 업데이트를 트리거합니다. 3) 가상 DOM 최적화 성능, 메모리에서 DOM 복제의 최소 작동을 계산하여 UI를 업데이트하십시오.

React의 장점은 유연성과 효율성이며, 이는 다음과 같이 반영됩니다. 1) 구성 요소 기반 설계는 코드 재사용 성을 향상시킵니다. 2) 가상 DOM 기술은 특히 다량의 데이터 업데이트를 처리 할 때 성능을 최적화합니다. 3) 풍부한 생태계는 많은 타사 라이브러리와 도구를 제공합니다. React가 어떻게 작동하고 사용하는지 이해함으로써 핵심 개념과 모범 사례를 마스터하여 효율적이고 유지 관리 가능한 사용자 인터페이스를 구축 할 수 있습니다.

React는 크고 복잡한 응용 프로그램에 적합한 사용자 인터페이스를 구축하기위한 JavaScript 라이브러리입니다. 1. React의 핵심은 구성 요소화 및 가상 DOM으로 UI 렌더링 성능을 향상시킵니다. 2. VUE와 비교할 때 React는 더 유연하지만 가파른 학습 곡선이있어 대규모 프로젝트에 적합합니다. 3. Angular와 비교하여 React는 더 가볍고 지역 사회 생태에 의존하며 유연성이 필요한 프로젝트에 적합합니다.

React는 Virtual Dom을 통해 HTML에서 작동합니다. 1) REACT는 JSX 구문을 사용하여 HTML 유사 구조를 작성합니다. 2) 가상 DOM 관리 UI 업데이트, 확산 알고리즘을 통한 효율적인 렌더링. 3) reftdom.render ()를 사용하여 구성 요소를 실제 DOM으로 렌더링하십시오. 4) 최적화 및 모범 사례에는 성능 및 유지 관리 가능성을 향상시키기 위해 React.Memo 및 구성 요소 분할 사용이 포함됩니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

드림위버 CS6
시각적 웹 개발 도구

WebStorm Mac 버전
유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기
