728x90
반응형
if(2 == ___ ) 중에 밑줄에 값이 들어올때 true가 아닌 경우?
1. Number(2)
2. Number(2).valueOf()
3. Number(2).toString()
4. 2.valueOf()
5. 2 .toString()
다음 중 true가 아닌 건 무엇일까요?
한번씩 꼭 생각해본 후 답을 체크해보세요!
답 : 4번 (스크롤 하시면 답 보입니다)
※ ==와 === 차이는?
===는 '일치'
기본형 : String, number, boolean, undefined, null, symbol
참조형 : 배열, 객체 등
기본형일 때는 '형'과 '값'이 일치해야 True를 반환한다.
( 즉, 1 === '1'은 각각 숫자와 문자열이기 때문에 False )
참조형일 때는 같은 레퍼런스여야 True를 반환한다.
( [1,2] === [1,2]는 레퍼런스가 다르므로 False )
같은 레퍼런스란 무엇인가?
1 2 3 4 | a = {a:1} b = a b.a = 2; a.a = ? | cs |
a.a도 2가 된다 -> a와 b는 같은 레퍼런스이므로 값이 변경됨! ( b === a )
==는 '동치'
===는 ==에 포함되는 부분. 즉 일치는 동치에 포함!
null = undefined는 동치 (암기하자)
0 == '0' -> '0'을 숫자로 바꿔줌
true == '1' -> true도 숫자1, '1'도 숫자 1로 바꿔주면서 ( 1 === 1 ) 성립됨
[2,3] == '2,3' -> [2,3]은 valueOf와 toString을 통해 2,3으로 되며 ( 2,3 === 2,3 ) 성립됨
1 .toString();과 1.toString();의 차이점
인터프리터의 입장에서 생각해보자. '1.'처럼 숫자 다음에 점을 찍으면 인터프리터는 이후에 숫자가 나온다고 생각한다.
따라서 1.toString()은 숫자가 아닌 문자가 나온 상태이므로 Syntax에러가 발생하게 된다.
1.23.toString();은? -> 첫 점 이후 숫자가 나왔기 때문에 정상 작동!
따라서 1 .toString();은 오류가 발생하지 않는다.
결국 보기 중에 false에 해당하는 것은 4번이 됩니다~
728x90
반응형
'자바스크립트' 카테고리의 다른 글
[자바스크립트] 3. 객체 (0) | 2018.10.13 |
---|---|
[자바스크립트] 2. 데이터 타입 (0) | 2018.10.13 |
[자바스크립트] 1. 소개 (0) | 2018.10.13 |
[자바스크립트] ES2015+ 요약 정리 (0) | 2018.09.19 |
[자바스크립트] 문제를 통한 개념잡기 - 2 (0) | 2018.07.13 |