English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 기본 강의

JavaScript 객체

JavaScript 함수

JS HTML DOM

JS 브라우저 BOM

AJAX 기본 강의

JavaScript 참조 가이드

JavaScript 숫자(Number)

JavaScript는 하나의 숫자 타입만 있으며, 정수와 부동소수점 숫자를 별도로 지정하지 않습니다.

따라서, 숫자는 JavaScript에서 소수점을 포함하거나 포함하지 않고도 작성할 수 있습니다.

var a = 25; // 소수점이 없습니다
var b = 80.05;  // 소수점이 있습니다
테스트를 보세요‹/›

위 두 가지 경우에서 데이터 타입은 모두 숫자이며, 숫자가 소수점을 가지고 있거나 없이도 동일합니다.

JavaScript에서 과학적 지수 표기법을 사용하여 매우 크거나 작은 숫자를 약화할 수 있습니다. 다음 예제와 같이 표시할 수 있습니다:

let num1 = 957e8; // 95700000000
let num2 = 957e-8;// 0.00000957
테스트를 보세요‹/›

JavaScript의 숫자는 정확하게 간주되며,최대15비트 숫자16비트 후 네 번째에서 반올림합니다:

let num1 = 999999999999999; // 값이 유지됩니다 999999999999999
let num2 = 9999999999999999;// 올림하여 10000000000000000
테스트를 보세요‹/›

숫자의 내부 표현

다른 언어와 달리 JavaScript는 정수,단정수,장정수,부동소수점 등 다른 유형의 숫자를 정의하지 않습니다.

JavaScript 숫자는64비트 정밀도,이는 더블 정밀도라고도 합니다.

내부 표현은 IEEE 기반 754기준

64비트는 숫자의 기호, 지수와 소수점 사이에 배분됩니다. 예를 들어:

識別지수소수점
1 bit11 bit52 bit
비트 63비트 62–52비트 51–0

숫자 더하기와 문자열 연결

이전 장에서 알 수 있듯이,+연산자는 숫자를 더하고 문자열을 연결하는 데 사용됩니다.

숫자라면 숫자를 더합니다. 문자열이면 문자열을 연결합니다.

두 숫자를 더하면 결과는 숫자가 됩니다:

let x = 50;
let y = 10;
let z = x + y;  // z  = 60 (숫자)
테스트를 보세요‹/›

두 문자열이면 결과는 문자열 연결됩니다:

let x = "50";
let y = "10";
let z = x + y;  // z  = 5010 (문자열)
테스트를 보세요‹/›

숫자와 문자열을 결합하면 결과는 문자열 연결됩니다:

let x = 50;
let y = "10";
let z = x + y;  // z  = 5010 (문자열)
테스트를 보세요‹/›

문자열과 숫자를 결합하면 결과는 문자열 연결됩니다:

let x = "50";
let y = 10;
let z = x + y;  // z  = 5010 (문자열)
테스트를 보세요‹/›

JavaScript는 표현식을 왼쪽에서 오른쪽으로 계산합니다. 다른 시퀀스는 다른 결과를 낳을 수 있습니다.

아래의 예제에서 먼저50 + 10x와 y가 모두 숫자이므로 더하고, 그런 다음60 +"30"을 연결해야 합니다,because z는 문자열입니다:

let x = 50;
let y = 10;
let z = "30";
let sum = x + y + z;  // sum  = 6030 (문자열)
테스트를 보세요‹/›

일반적인 오류, 예상한 결과는60:

let x = 50;
let y = 10;
let z = "The sum is: " + x + y;
테스트를 보세요‹/›

제가 제시한 문제를 해결할 수 있는 방법은 괄호를 사용하는 것입니다:

let x = 50;
let y = 10;
let z = "The sum is: " + (x + y);
테스트를 보세요‹/›

숫자 문자열과 수학 표현식

JavaScript 문자열은 숫자 값을 포함할 수 있습니다.

  let x = 50;  // x 은 숫자입니다
  let y = "50";  // y 은 문자열입니다

문자열이 숫자 값을 포함하면 JavaScript에서 수학 표현식을 수행할 수 있습니다.

除셈 수행할 수 있습니다:

let x = "50" / "10";  // x  = 5
테스트를 보세요‹/›

곱셈 수행할 수 있습니다:

let x = "50" * "10";  // x  = 500
테스트를 보세요‹/›

평만 수행할 수 있습니다:

let x = "5" ** "3";  // x  = 125
테스트를 보세요‹/›

증가량 수행할 수 있습니다:

let x = "50";
x++; // x  = 51
테스트를 보세요‹/›

뺄셈 수행할 수 있습니다:

let x = "50" - "10";  // x  = 40
테스트를 보세요‹/›

덧셈 수행할 수 없습니다:

let x = "50" + "10";  // x  = 5010
테스트를 보세요‹/›

주의:두 문자열을 추가하면 결과는 문자열 연결됩니다.

JavaScript NaN-비법 숫자

JavaScript의 NaN에서는, 예약어는 숫자가 유효한 숫자가 아님을 나타냅니다.

숫자와 비숫자 값을 수학 연산에 대해 시도하면 NaN이 반환됩니다。

var x = 50 / "oldtoolbag.com";  // x  = NaN (Not a Number)
테스트를 보세요‹/›

하지만, 문자열이 숫자 값을 포함하고 있으면 JavaScript로 수학 표현식을 실행할 수 있습니다:

var x = 50 / "10";  // x  = 5
테스트를 보세요‹/›

전역 JavaScript isNaN()함수를 사용하여 값이 숫자인지 확인할 수 있습니다:

var x = 50 / "oldtoolbag.com";
isNaN(x);// true를 반환합니다. 왜냐하면 x는 숫자가 아닙니다
테스트를 보세요‹/›

NaN으로 사용된 변수에 값이 할당되면, 다른 연산자가 유효한 숫자라도 이를 유발할 수 있습니다:

var x = NaN;
var y = 27;
var z = x + y;  // z  = NaN
테스트를 보세요‹/›

NaN은 숫자입니다;typeof NaN은 number를 반환합니다:

typeof NaN;   // will return "number"
테스트를 보세요‹/›

JavaScript 무한

Infinity(정의 무한) 또는-Infinity(부정의 무한) JavaScript에서 사용할 수 있는 최대 숫자를 초과한 숫자를 계산하면 반환됩니다.

정의되지 않은 값에 대해서도 이러한 상황이 발생합니다. 예를 들어 0으로 나누는 경우:

var x = 5 / 0;   // 무한을 반환합니다
var y = -5 / 0;  // 부정의 무한을 반환합니다
테스트를 보세요‹/›

기술적 표현으로는,Infinity(정의 무한) 숫자가 number를 초과하면 표시됩니다1.797693134862315E+308,그것은 JavaScript의 상한을 나타냅니다.

동일하게-Infinity(부정의 무한) 숫자가 하한을 초과하면 표시됩니다-1.797693134862316E+308。

Infinity는 숫자입니다:typeof Infinity는 number를 반환합니다:

typeof Infinity;   // will return "number"
테스트를 보세요‹/›

این عدد Infinity도 반복문에서 사용될 수 있습니다:

var num = 5;
while (num != Infinity) { 
// 여기의 코드는 num = ∞까지 실행됩니다
}
테스트를 보세요‹/›

JavaScript 기본수

기본적으로 JavaScript는 숫자를10기본의소수점

),16진수(기본16),이진수(기본2)와 8진수(기본8)를 나타냅니다.

16진수는 0x로 접두사가 있습니다:

var x = 0xFF;  // x  = 255
테스트를 보세요‹/›

이진수는 0b로 접두사가 있습니다:

var x = 0b1111;// x  = 15
테스트를 보세요‹/›

0으로 시작하는 숫자를 쓰지 마세요(예를 들어 0121)。숫자를 전导부0으로 작성하면 JavaScript는 숫자를 8진수로 해석합니다:

이를 사용할 수 있습니다.toString()메서드는2부터36의 숫자를 숫자로 반환합니다.

16진수로는기본수16십진수로는기본수10오ctal로는기본수8이진수로는기본수2

var num = 255;
num.toString(10);  // returns 255
num.toString(16);  // returns ff
num.toString(8);   // returns 377
num.toString(2);   // returns 11111111
테스트를 보세요‹/›

숫자 원시 값과 숫자 객체

일반적으로, JavaScript 숫자는 텍스트로 생성된 원시 값입니다:

var num = 50;

하지만, new 키워드를 사용하여 숫자를 객체로 정의할 수도 있습니다:

var num = new Number(50);

두 가지 차이를 테스트하기 위해, 숫자 원시 값을 숫자 객체로 초기화하겠습니다.

var num1 = 50;
var num2 = new Number(50);
typeof num1// returns number
typeof num2// returns object
테스트를 보세요‹/›

주의:숫자를 객체로 생성하지 마십시오. 이는 성능을 저하시키고 예상치 못한 결과를 초래할 수 있습니다.

== 연산자를 사용할 때, 숫자는 다음과 같습니다:

var num1 = 50;
var num2 = new Number(50);
document.write(num1 == num2); // true를 반환합니다. 왜냐하면 num1와 num2같은 값을 가지고 있습니다
테스트를 보세요‹/›

=== 연산자를 사용할 때, 같은 숫자는 다릅니다. 왜냐하면 === 연산자는 값과 타입을 모두 기대합니다:

var num1 = 50;
var num2 = new Number(50);
document.write(num1 === num2); // false를 반환합니다. 왜냐하면 num1와 num2다른 타입을 가지고 있습니다
테스트를 보세요‹/›

객체를 비교할 수 없습니다:

var num1 = new Number(50);
var num2 = new Number(50);
document.write(num1 == num2); // false를 반환합니다. 왜냐하면 num1와 num2다른 객체입니다
document.write(num1 === num2); // false를 반환합니다. 왜냐하면 num1와 num2다른 객체입니다
테스트를 보세요‹/›

주의하십시오(==)와(===)의 차이점。JavaScript 객체를 비교할 때는 항상 false를 반환합니다。