Pko
js - 조건문 본문
조건문 - True / False
js에서 조건문 사용시 주위 해야 할 점이 존재 한다.
javascript에는 아래 6개 데이터에 대해서 false 값으로 판단한다.
( 나머지는 다 ture라고 생각하면 된다 )
undefined
null
0
-0
NaN
"" // 빈 문자열
js에서 [] 는 (0)으로 출력된다 이때 해당 공 배열을 사용하여 조건문 사용시
console.log( [] ) // return (0)
consolo.log ( false == [] ) // return : ture
if( [] ) { console.log("true"); }
else { console.log("false"); } // return : true
위의 결과 값을 가지게 된다.
0은 false 값으로 판단 됨으로 false == [] 는 0 == 0 임으로 true가 맞다.
if( [] ) 는 if( 0 ) 이기 때문에 else 문이 실행되어야 하는데 왜 라고 생각할수 있다.
그러나 js의 if 문은 boolean type으로 판단하기때문에 ( ) 안의 argument의 타입변환이 일어나게 된다.
console.log( typeof [] ) // return object
이때 []의 타입을 확인해보면 Object 인것을 확인할 수 있고 그렇기 때문에 else문이 아닌 if 문의 body가 실행되는 것이다.
https://tc39.es/ecma262/#sec-toboolean
'language > js' 카테고리의 다른 글
Strict mode & Sloppy mode (0) | 2021.07.20 |
---|---|
js - Array (0) | 2021.07.06 |
js 호이스팅 (0) | 2021.07.03 |
js - 클로저 (0) | 2021.07.01 |
js 자료형 (0) | 2021.07.01 |