JS 튜토리얼

제이에스 홈 JS 소개 JS 어디로 JS 출력 JS 문 JS 구문 JS 코멘트 JS 변수 제이에스렛 JS 상수 JS 연산자 JS 산술 JS 할당 JS 데이터 유형 JS 함수 JS 객체 JS 이벤트 JS 문자열 JS 문자열 메서드 JS 문자열 검색 JS 문자열 템플릿 JS 번호 JS 숫자 메서드 JS 배열 JS 배열 메서드 JS 배열 정렬 JS 배열 반복 JS 배열 상수 JS 날짜 JS 날짜 형식 JS 날짜 가져오기 메서드 JS 날짜 설정 방법 JS 수학 JS 랜덤 JS 부울 JS 비교 JS 조건 JS 스위치 JS 루프 In에 대한 JS 루프 의 JS 루프 JS 루프 동안 JS 브레이크 JS 이터러블 JS 세트 JS 맵 JS 유형 JS 유형 변환 JS 비트와이즈 JS 정규 표현식 JS 오류 JS 범위 JS 호이스팅 JS 엄격 모드 JS 이 키워드 JS 화살표 함수 JS 클래스 JS JSON JS 디버깅 JS 스타일 가이드 JS 모범 사례 JS 실수 JS 성능 JS 예약어

JS 버전

JS 버전 JS 2009(ES5) JS 2015(ES6) JS 2016 JS 2017 JS 2018 JS IE / 엣지 JS 연혁

JS 객체

객체 정의 개체 속성 개체 메서드 개체 표시 개체 접근자 객체 생성자 개체 프로토타입 객체 반복 가능 객체 세트 객체 맵 개체 참조

JS 함수

기능 정의 기능 매개변수 함수 호출 함수 호출 기능 적용 함수 클로저

JS 클래스

수업 소개 클래스 상속 클래스 정적

JS 비동기

JS 콜백 JS 비동기 JS 약속 JS 비동기/대기

JS HTML DOM

DOM 소개 DOM 메서드 DOM 문서 DOM 요소 DOM HTML DOM 양식 DOM CSS DOM 애니메이션 DOM 이벤트 DOM 이벤트 리스너 DOM 탐색 DOM 노드 DOM 컬렉션 DOM 노드 목록

JS 브라우저 BOM

JS 창 JS 화면 JS 위치 JS 연혁 JS 네비게이터 JS 팝업 경고 JS 타이밍 JS 쿠키

JS 웹 API

웹 API 소개 웹 양식 API 웹 기록 API 웹 스토리지 API 웹 작업자 API 웹 가져오기 API 웹 지리적 위치 API

JS 아약스

AJAX 소개 AJAX XMLHttp AJAX 요청 AJAX 응답 AJAX XML 파일 AJAX PHP AJAX ASP AJAX 데이터베이스 AJAX 애플리케이션 AJAX 예제

JS JSON

JSON 소개 JSON 구문 JSON 대 XML JSON 데이터 유형 JSON 구문 분석 JSON 문자열화 JSON 객체 JSON 배열 JSON 서버 JSON PHP JSON HTML JSON JSONP

JS 대 jQuery

jQuery 선택기 제이쿼리 HTML 제이쿼리 CSS 제이쿼리 DOM

JS 그래픽

JS 그래픽 JS 캔버스 JS 플로틀리 JS 차트.js JS 구글 차트 JS D3.js

JS 예제

JS 예제 JS HTML DOM JS HTML 입력 JS HTML 객체 JS HTML 이벤트 JS 브라우저 JS 편집기 JS 연습 JS 퀴즈 JS 인증서

JS 참조

자바스크립트 객체 HTML DOM 객체


자바스크립트 숫자


JavaScript에는 한 가지 유형의 숫자만 있습니다. 숫자는 소수를 포함하거나 포함하지 않고 쓸 수 있습니다.


예시

let x = 3.14;    // A number with decimals
let y = 3;       // A number without decimals

매우 크거나 작은 숫자는 과학적(지수) 표기법으로 작성할 수 있습니다.

예시

let x = 123e5;    // 12300000
let y = 123e-5;   // 0.00123


JavaScript 숫자는 항상 64비트 부동 소수점입니다.

다른 많은 프로그래밍 언어와 달리 JavaScript는 정수, short, long, 부동 소수점 등과 같은 다양한 유형의 숫자를 정의하지 않습니다.

JavaScript 숫자는 국제 IEEE 754 표준에 따라 항상 배정밀도 부동 소수점 숫자로 저장됩니다.

이 형식은 64비트로 숫자를 저장합니다. 여기서 숫자(분수)는 비트 0~51, 지수는 비트 52~62, 부호는 비트 63에 저장됩니다.

값(일명 분수/가수) 멱지수 징후
52비트(0 - 51)  11비트(52 - 62) 1비트(63)

정수 정밀도

정수(마침표 또는 지수 표기가 없는 숫자)는 최대 15자리까지 정확합니다.

예시

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

최대 소수 자릿수는 17입니다.

부동 정밀도

부동 소수점 산술이 항상 100% 정확한 것은 아닙니다.

let x = 0.2 + 0.1;

위의 문제를 해결하려면 곱하고 나누면 도움이 됩니다.

let x = (0.2 * 10 + 0.1 * 10) / 10;


숫자와 문자열 추가하기

경고 !!

JavaScript는 더하기와 연결 모두에 + 연산자를 사용합니다.

숫자가 추가됩니다. 문자열이 연결됩니다.

두 개의 숫자를 더하면 결과는 숫자가 됩니다.

예시

let x = 10;
let y = 20;
let z = x + y;

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

예시

let x = "10";
let y = "20";
let z = x + y;

숫자와 문자열을 추가하면 결과는 문자열 연결이 됩니다.

예시

let x = 10;
let y = "20";
let z = x + y;

문자열과 숫자를 추가하면 결과는 문자열 연결이 됩니다.

예시

let x = "10";
let y = 20;
let z = x + y;

일반적인 실수는 이 결과가 30일 것으로 예상하는 것입니다.

예시

let x = 10;
let y = 20;
let z = "The result is: " + x + y;

일반적인 실수는 이 결과가 102030일 것으로 예상하는 것입니다.

예시

let x = 10;
let y = 20;
let z = "30";
let result = x + y + z;

JavaScript 인터프리터는 왼쪽에서 오른쪽으로 작동합니다.

x와 y가 모두 숫자이기 때문에 처음 10 + 20이 추가됩니다.

그런 다음 z가 문자열이기 때문에 30 + "30"이 연결됩니다.


숫자 문자열

JavaScript 문자열에는 숫자 내용이 포함될 수 있습니다.

let x = 100;         // x is a number

let y = "100";       // y is a string

JavaScript는 모든 숫자 연산에서 문자열을 숫자로 변환하려고 시도합니다.

이것은 작동합니다:

let x = "100";
let y = "10";
let z = x / y;

이것은 또한 작동합니다:

let x = "100";
let y = "10";
let z = x * y;

그리고 이것은 작동합니다:

let x = "100";
let y = "10";
let z = x - y;

그러나 이것은 작동하지 않습니다:

let x = "100";
let y = "10";
let z = x + y;

마지막 예제에서 JavaScript는 + 연산자를 사용하여 문자열을 연결합니다.


NaN - 숫자가 아님

NaN 숫자가 법적 숫자가 아님을 나타내는 JavaScript 예약어입니다.

숫자가 아닌 문자열을 사용하여 산술을 수행하려고 하면 NaN(숫자가 아님)이 발생합니다.

예시

let x = 100 / "Apple";

그러나 문자열에 숫자 값이 포함되어 있으면 결과는 숫자가 됩니다.

예시

let x = 100 / "10";

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

예시

let x = 100 / "Apple";
isNaN(x);

조심해 NaN. 수학 연산에서 사용 NaN하는 경우 결과도 다음 NaN과 같습니다.

예시

let x = NaN;
let y = 5;
let z = x + y;

또는 결과는 NaN5와 같은 연결일 수 있습니다.

예시

let x = NaN;
let y = "5";
let z = x + y;

NaN숫자: typeof NaN반환 number:

예시

typeof NaN;

무한대

Infinity(또는 -Infinity)은 가능한 가장 큰 수 이외의 수를 계산하는 경우 JavaScript가 반환하는 값입니다.

예시

let myNumber = 2;
// Execute until Infinity
while (myNumber != Infinity) {
  myNumber = myNumber * myNumber;
}

0(영)으로 나누기도 다음을 생성합니다 Infinity.

예시

let x =  2 / 0;
let y = -2 / 0;

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

예시

typeof Infinity;

16진수

JavaScript는 숫자 상수 앞에 0x가 있으면 16진수로 해석합니다.

예시

let x = 0xFF;

앞에 0이 있는 숫자를 쓰지 마십시오(예: 07).
일부 JavaScript 버전은 선행 0으로 작성된 숫자를 8진수로 해석합니다.

기본적으로 JavaScript는 숫자를 10진법 으로 표시합니다 .

그러나 이 방법을 사용하여 2 진수에서 36 진수 로 toString()숫자를 출력 할 수 있습니다 .

16진수는 16 진수입니다 . 10진수는 기수 10 입니다. 8진수는 8 진수입니다 . 이진법은 2진법 입니다.

예시

let myNumber = 32;
myNumber.toString(10);
myNumber.toString(32);
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);

객체로서의 JavaScript 숫자

일반적으로 JavaScript 숫자는 리터럴에서 생성된 기본 값입니다.

let x = 123;

그러나 숫자는 키워드를 사용하여 객체로 정의할 수도 있습니다 new.

let y = new Number(123);

예시

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

Number 객체를 생성하지 마십시오.

new키워드는 코드를 복잡하게 만들고 실행 속도를 늦춥니다.

숫자 개체는 예기치 않은 결과를 생성할 수 있습니다.

연산자 를 사용할 때 ==x와 y는 같음 :

let x = 500;
let y = new Number(500);

연산자 를 사용할 때 ===x와 y는 같지 않습니다 .

let x = 500;
let y = new Number(500);

(x==y)의 차이점에 유의하십시오 (x===y).

(x == y)참인가 거짓인가?

let x = new Number(500);
let y = new Number(500);

(x === y)참인가 거짓인가?

let x = new Number(500);
let y = new Number(500);

Comparing two JavaScript objects always returns false.

Complete JavaScript Number Reference

For a complete Number reference, visit our:

Complete JavaScript Number Reference.

The reference contains descriptions and examples of all Number properties and methods.