자바스크립트에서 일반적인 숫자는 64비트 형식의 IEEE-754 표준 기반 형태로 저장되는 자료형이다.
10진수 외에도 16진수, 2진수, 8진수의 다양한 진수를 사용할 수 있다.
1) 대표 상수값
MAX / MIN_VALUE : JavaScipt가 표현할 수 있는 제일 큰 / 작은 양의 숫자 값을 나타낸다.
console.log(Number.MAX_VALUE) // output : 1.7976931348623157e+308
console.log(Number.MIN_VALUE) // output : 5e-324
MAX / MIN_SAFE_INTEGER : JavaScript에서 안전한 최대 / 최소 정수값을 나타낸다.
console.log(Number.MAX_SAFE_INTEGER) // output : 9007199254740991
console.log(Number.MIN_SAFE_INTEGER) // output : -9007199254740991
POSITIVE / NEGATIVE_INFINITY : Javascript에서 양 / 음의 무한대를 나타낸다.
console.log(Number.POSITIVE_INFINITY) // output : Infinity
console.log(Number.NEGATIVE_INFINITY) // output : -Infinity
NaN : 숫자로 표현할 수 없는 값을 뜻한다.
console.log(Number.NaN) // output : NaN
console.log(Number("!!!")) // output : NaN
2) 대표 메서드
문자열로 변환 : Number.toString();
let strNum = (600).toString();
console.log(typeof strNum);
특정 자리수까지 제한하여 숫자 표현 : Number.toFixed(), Number.toPrecision()
Number.toFixed(n) : 소수점 n자리까지 제한하여 출력
Number.toPrecision(n) : 정수와 소수의 자리 수를 합한 길이로 제한. 짤리면 반올림하여 출력
console.log((123.55).toFixed(1)); // 소수점 한자리까지만 제한하여 출력
console.log((123.5555).toPrecision(4)); // 정수와 소수점을 포함한 자릿수만큼 반올림하여 출력
타입 확인 : Number.isNaN(), Number.isFinite()
Number.isNaN() : 값이 NaN인지 아닌지 판별
Number.isFinite() : Number이면서 유한수인지 판별
console.log(Number.isNaN(Number("!!!"))); // output : true
console.log(123) // output : false
3) 지수 / 진법
let billion_1 = 10000000
let billion_2 = 1e7 // 1 + 0 7개
let us = 1e-6 // 왼쪽으로 6번 소수점 이동. 0.000001
console.log(0x6645F) // 16진수
console.log(0o655) // 8진수
console.log(0b2223) // 2진수
4) 형변환
Number.parseInt(60, 16) // 60을 16진수로 변경
Number.parseFloat(값) // 실수로 변경
let asd = "6000.68498465456";
console.log(parseInt(asd)); // 소수점까지 다 출력
1) 문자열 길이
let str = "string";
console.log(str.length)
2) 문자열 접근
let str = "string"
console.log(str.charAt(3)) // output : i
let str = "string"
console.log(str.charCodeAt(3)) // output : 105
3) 문자열 검색
let str = "striooing"
console.log(str.indexOf("r")) // output : 2
console.log(str.indexOf("i", 4)) // output : 6 -> 4번째부터 i가 있는 index를 출력한다.
let str = "stiiiiog"
console.log(str.lastIndexOf("i")) // output : 5
let str = "stringgggg"
console.log(str.includes("ggg")) // output : true
let str = "hello I`m seongju"
console.log(str.startsWith("ello")) // output : false
// 이 코드가 true가 나오는 이유는 index:1부터 검색을 하는 것이기 때문에 true로 나온다.
console.log(str.startsWith("ello", 1)) output : true
let str = "hello I`m seongju"
console.log(str.endsWith("seongju")); // output : true
4) 문자열 변환
let str = "string";
console.log(str.toUpperCase()) // output : STRING
let str = "STRING";
console.log(str.toLowerCase()) // output : string
let str = "STRING";
let arr = [...str]
console.log(arr) -> ["S", "T", "R", "I", "N", "G"]
5) 문자열 치환
let str = "hello world";
console.log(str.replace("hello", "hi")) // output : hi world
6) 문자열 추출
let str = "abcdefghijklmnop";
console.log(str.slice(10)) // output : klmnop
console.log(str.slice(3, 7))
// slice와 동일
let str = "abcdefghijklmnop";
console.log(str.slice(10)) // output : klmnop
console.log(str.slice(3, 7))
console.log(str.substring(-1, 10)) // output : abcdefghij
let str = "abcdefghijklmnop";
console.log(str.substr(3, 5)) // output : defgh
7) 문자열 분할
let str = "hello,i`m,seongju"
console.log(str.split(",")) // ["hello", "i`m", "seongju"];
console.log(str.split(",", 2)) // ["hello", "i`m"];