Link Search Menu Expand Document

JavaScript Numbers

Table of contents

  1. Numbers Basic
    1. What is Numbers?
    2. Integers Precision
    3. Adding Numbers and Strings
    4. Numeric Strings
    5. NaN(Not a Number)
      1. isNaN()
      2. typeof NaN
    6. Infinity
      1. typeof Infinity
    7. Hexadecimal
    8. Numbers Can be Objects

Numbers Basic

What is Numbers?

자바스크립트가 사용하는 단 한가지 타입의 숫자를 나타내는 number 데이터 타입

▸ 숫자는 소숫점이 있거나 없이 쓰임

▸ JavaScript Numbers are Always 64-bit Floating Point

▸ 다른 많은 프로그래밍 언어와 달리 JavaScript는 정수, 짧은, 긴, 부동 소수점 등과 같은 다른 유형의 숫자를 정의하지 않음

Integers Precision

integers : 정수

▸ 정수 (마침표 나 지수 표기가없는 숫자)는 최대 15 자리

var x = 999999999999999;   // x will be 999999999999999
var y = 9999999999999999;  // y will be 10000000000000000

▸ 최대 소수 자릿수는 17이지만 부동 소수점 산술이 항상 100 % 정확하지는 않음

var x = 0.2 + 0.1;         // x will be 0.30000000000000004

문제를 해결하려면 아래와 같이 해야함
var x = (0.2 * 10 + 0.1 * 10) / 10;       // x will be 0.3

Adding Numbers and Strings

Numbers are added, Strings are concatenated

▸ add a number and a string, the result will be a string concatenation

▸ 왼쪽에서 오른쪽으로 계산되기 때문에 숫자 계산 먼저 됨

var x = 10;
var y = "20";
var z = "The result is: " + x + y;  		// z = "The result is 1020"

...

var x = 10;
var y = 20;
var z = "30";
var result = x + y + z;                     // z = "3030"

Numeric Strings

숫자 문자열은 종종 숫자로 계산됨

▸ 나누기, 곱하기, 빼기 다 숫자로 계산 되는데 오직 더하기만 Concatenation

var x = "100";
var y = "10";
var z = x / y;       // z will be 10
var z = x * y;       // z will be 1000
var z = x - y;       // z will be 90
var z = x + y;       // z will not be 110 (It will be 10010)

NaN(Not a Number)

a number is not a legal number

▸ 숫자가 아니라는걸 나타내는 자바스크립트 NaN키워드

▸ 숫자가 아닌 문자열로 산술을 시도하면 NaN 발생

▸ NaN 연산시 숫자는 계산되고 문자는 결합됨

var x = 100 / "Apple";  
// x will be NaN (Not a Number)

...

NaN + 숫자 = NaN
NaN + "문자열" = NaN문자열

isNaN()

to find out if a value is a number

▸ global JavaScript function

var x = 100 / "Apple";
isNaN(x);               // returns true because x is Not a Number

typeof NaN

typeof NaN;            // returns "number"

Infinity

가능한 가장 큰 숫자 이외의 숫자를 계산하면 JavaScript가 반환하는 값

▸ -Infinity도 있음

var x =  2 / 0;       // x will be Infinity
var y = -2 / 0;       // y will be -Infinity

typeof Infinity

typeof Infinity;     // returns "number"

Hexadecimal

16진수

▸ 기본적으로 JavaScript는 숫자를 10 진수로 표시

▸ 숫자 상수 앞에 0x가 있으면 16 진수로 해석

▸ 숫자 앞에 7을 07와같이 사용하면 (선행 0으로 작성된 경우의) 숫자를 8 진수로 해석

▸ toString으로 기수 2 에서 기수 36으로 숫자를 출력 할 수 있음

예제

var myNumber = 32;
myNumber.toString(10);  // 10진법, returns 32
myNumber.toString(32);  // 32진법, returns 10
myNumber.toString(16);  // 16진법, returns 20
myNumber.toString(8);   // 8진법, returns 40
myNumber.toString(2);   // 2진법, returns 100000

Numbers Can be Objects

숫자를 객체로 선언할 수 있음

new 키워드는 복잡한 코드라서 계산속도를 늦추기때문에 권장되지 않음

예제

var x = 123;
var y = new Number(123);

// typeof x returns number
// typeof y returns object

위 예제는 == 는 true지만 ===는 false

또한 둘다 객체로 선언될 경우 객체는 비교될수 없기 때문에 모두 false가 나온다



Table of contents


이 웹사이트는 jekyll로 제작되었습니다. Patrick Marsceill, Distributed by an MIT license.