프로그래밍이야기/JavaScript
[Javascript] 이펙티브 자바스크립트 (1)
사랑꾼이야
2020. 5. 17. 23:41
반응형
부동 소수점 숫자.
정수형이나 부동 소수점 숫자를 단순히 숫자형으로 처리
typeof 36; console.log(typeof 36); typeof 50.05; console.log(typeof 36); typeof -9.05; console.log(typeof 36);
결과는(아래).
number number number
자바스크립트 내의 모든 숫자는 부동 소수점, 즉 double형을 사용
비트단위 연산자는 숫자를 32비트의 부호가 있는 integer처럼 처리한다.(아래)
(8).toString(2); console.log((8).toString(2)); parseInt("1001", 2); console.log(parseInt("1001", 2));
결과는(아래).
1000 9
암묵적인 형변환.
산술연산자(-, *, /, %)는 계산 전에 인자들을 숫자형으로 변환
+ 연산자는 숫자의 덧셈이나 문자의 병합을 인자들의 데이터형에 따라서 오버로딩한다.(아래)
2 + 3; console.log(2 + 3); "hello" + " world"; console.log("hello" + " world");
결과는(아래).
5 hello world
문자열을 우선하여 숫자를 문자열로 변환한다.(아래)
"6" + 9; //69 6 + "9"; //69 4 + 5 + "6"; //96 (4 + 5) + "6"; //96 4 + "5" + 6; //456 (4 + "5") + 6; //456 "17" * 1; //17 "8" | "1"; //9
unfefined확인.
typeof를 이용한다.(아래)
function point(x, y) { if( typeof x === "undefined"){ x = 320; } if( typeof y === "undefined"){ y = 400; } return { x : x, y : y }; } point(); point(0, 0);
정리.
1. 자바스크립트의 숫자는 double 정확도의 부동 소수점 숫자
2. 비트단위 연산자는 숫자를 32비트의 부호가 있는 integer처럼 처리
3. 부동 소수점 산술연산의 정확도에 한계가 있음을 주의
4. 데이터형 에러는 암묵적인 강제 형변환에 의해 이루어짐.
5. + 연산자는 인자의 데이터형에 따라 덧셈이나 문자열 병합으로 오버로딩
6. 객체는 valueOf를 통해 숫자형으로, toString을 통해 문자열로 강제 형변환
7. undefined 값을 테스트할 때, typeof 또는 " undefined"과 비교
총평.
첫 장이라서 가볍게 넘어갈줄 알았는데.
반응형