자바스크립트에서 불리언 결과가 false로 판명되는 것들은 다음과 같다.
undefined, null
NaN
0 (숫자 리터럴) , -0
“” (빈 문자열)
false
주의할 점은 빈 문자열은 false 이지만 빈 배열, 빈 객체는 true라는 것이다.
> Boolean("")false> Boolean([])true> Boolean({})true |
그리고 NaN은 그 자신과 같지 않은 유일한 자료형이다.
> undefined == undefinedtrue> null == nulltrue> NaN == NaNfalse |
논리 or (||) 연산자를 이용하여 자바스크립트에는 지원하지 않는 default parameter 를 구현할 수 있다.
function func(a) {if (a == undefined) a = 1; //(*)...} |
위와 같이 하면 func(0)이라고 호출하면 변수 a는 사용자가 지정한 대로 0값을 가지지만 func() 라고 호출해도 내부 변수 a는 1값을 가지게 된다.
루아 프로그래머는 위의 (*)를 다음과 같이 더 간단하게 할 수 있지 않느냐고 생각할 지 모른다.
a = a || 1 |
하지만 func(0) 으로 호출하면 a는 내부적으로 1로 바뀌어 버린다. 0은 false로 간주하기 때문이다. (루아에서는 숫자 0은 true이다.) 주의해야 한다.
'프로그래밍언어.Lib > node.js' 카테고리의 다른 글
자바스크립트(ECAMScript5) 객체의 상속 (0) | 2015.10.13 |
---|---|
enclose를 이용하여 js파일을 단일 실행파일로 컴파일 하기 (0) | 2015.10.07 |
github raw 파일을 CDN 으로 연결시켜주는 rawgit.com 사이트 (0) | 2015.10.06 |
Koding 에서 node.js 테스트하기 (0) | 2015.09.02 |