Pko

js - 조건문 본문

language/js

js - 조건문

pastko 2021. 6. 15. 19:17

조건문 - 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가 실행되는 것이다.

sec-toboolean 

https://tc39.es/ecma262/#sec-toboolean

 

ECMAScript® 2022 Language Specification

The first and subsequent editions of ECMAScript have provided, for certain operators, implicit numeric conversions that could lose precision or truncate. These legacy implicit conversions are maintained for backward compatibility, but not provided for BigI

tc39.es

 

'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