숫자형
JS의 숫자형은 배정밀도 64비트 부동소수점 형식
배정밀도 64비트 : 숫자 하나를 표현하는데 64비트의 용량을 사용. 32비트보다 두배로 정밀
부동소수점 : 소수점을 이동시키면서 숫자를 표현
음양의 값, 유효숫자와 소수점의 위치 값으로 숫자를 나타냄
숫자의 다양한 연산
console.log(`10 + 3 = ${10 + 3}`)
console.log(`10 - 3 = ${10 - 3}`)
console.log(`10 / 3 = ${10 / 3}`)
console.log(`10 * 3 = ${10 * 3}`)
console.log(`10 ** 3 = ${10 ** 3}`) // 10^3
console.log(`4 ** 0.5 = ${4 ** 0.5}`) // 4의 제곱근 = 2
console.log(`10 % 3 = ${10 % 3}`) // 나머지
console.log(`10 % 3 = ${10 // 3}`) // ERROR : //연산자는 없음 몫 X
console.log(-(-2))
console.log(--2) // Error
console.log(+'4') // 4
console.log(~~3.14) // 소숫점 제거 3
// 0부터 9까지 출력
for (let i = 0; i < 10; i++) {
console.log(i)
}
console.log(2 == '2'); // 다른 언어에서는 false, js에서는 true
console.log(2 === '2'); // 다른 언어에서 이런 문법이 없고, js에서는 false. 등호 3개 사용 권장
숫자를 의미하는 특수 값
Infinity : 무한대 or 아주 큰수 or 불가능한 연산
console.log(1/0); // 불가능한 연산 Infinity
let num = 9999e10000; // 9999 * 10^10000 아주 큰 수 (표현불가능)
console.log(num === Infinity); // true
NaN : Not a Number 산술연산이 불가능한 데이터와 연산을 진행하려 할때 반환.
console.log("구천구백구십구" / 2); // Nan
숫자형 메소드
- parseInt(), parseFloat() : 문자열을 정수 또는 실수로 바꿔주는 함수. 숫자가 아닌 문자를 만나면 변환 종료.
parseInt('30'); // 30
parseInt('30b'); // 30
parseInt('b30'); // NaN
parseInt('33.33'); // 33
parseInt('10 ') // 10
parseInt(' 10') // 10 첫번째로 오는 공백은 OK
parseInt(' 10 12 1') // 10
parseInt('11', 2); // 2진법으로 나타낸 11을 10진법으로 변환
parseInt('30', 2); // 2진법에선 3이 없으니 NaN
- toString() : 숫자를 문자열로 변환
let num = 5;
num.toString(); // '5'
(3).toString(); // '3'
3.toString(); // Error : 3. 을 3의 소숫점으로 인식
(3).toString(2); // 10진수 3을 2진수 문자열로 반환
- isNan() : 인수를 Number()로 형 변환후, NaN인지 확인
isNaN(true); // Number(true)가 1이므로 거짓
isNaN(null); // Number(null)이 0이므로 거짓
isNaN(37); // 거짓
isNaN(""); // Number("")가 0이므로 거짓
isNaN(" "); // Number(" ")가 0이므로 거짓
isNaN("abc"); // Number("abc")는 NaN
- Number.isNaN() : isNaN함수의 엄격한 버전. 인수가 Number이고 NaN이면 true, 아니면 false
- toLocaleString() : 숫자를 언어의 표기법대로 변환하여 문자열로 반환. 인자로 국가코드 전달
(12345678910).toLocaleString(); // '12,345,678,910'
(12345678910).toLocaleString('ar-IQ') // '١٢٬٣٤٥٬٦٧٨٬٩١٠' 이라크 숫자
(12345678910).toLocaleString('ko-KR', { style: 'currency', currency: 'KRW' }) // '₩12,345,678,910'
- Math 내장 객체를 이용
Math.PI; // 3.141592653589793 파이
Math.round(4.7) // 5 반올림
Math.pow(2, 8) // 256 2^8
Math.sqrt(64) // 8 64의 제곱근
'JS' 카테고리의 다른 글
JS(7) Type - 객체타입(1) 배열 (0) | 2023.08.24 |
---|---|
JS(6) Type - 원시타입(3) Boolean, undefined, null (0) | 2023.08.23 |
JS(4) Type - 원시타입(1) 문자열 (3) | 2023.08.23 |
JS(3) Type 을 확인하는 방법 (0) | 2023.08.23 |
JS(2) 변수 (0) | 2023.08.23 |