자바스크립트의 함정 중에 하나는 객체 비교 연산자가 ==와 === 두 가지 버전으로 있다는 점입니다.

Operator (==)
Tests for equality in value between two operands.

Operator (===)
Tests for equality between two operands both in terms of value and type. Supported in JavaScript 1.3+


==는 자동으로 변환을 수행하여 비교 연산을 하기 때문에 a = 1과 b = "1"을 비교했을 때 a == b는 true를 리턴하게 됩니다. 반면에 ===는 타입과 값을 모두 비교하기 때문에 서로 다른 타입인 a와 b를 비교하는 a === b는 false를 리턴합니다.

다음은 자바로 작성된 자바스크립트 엔진인 Rhino1.6 R5에서 ==와 ===를 수행한 결과입니다.

$ java -jar js.jar
Rhino 1.6 release 5 2006 11 18
js> a = 1
1
js> b = "1"
1
js> a  == b
true
js> a === b
false







  1. Favicon of http://dahlia.pe.kr/ BlogIcon 홍민희

    | 2007.04.29 13:40 | PERMALINK | EDIT | REPLY |

    PHP에서도 === 연산자가 같은 역할을 합니다. PHP에서는 타입 저글링이라는 것이 있어서 1 == "1"이나 0 == "0" 같은 것이 true로 평가됩니다.

Write your message and submit
« PREV : 1 : ··· : 141 : 142 : 143 : 144 : 145 : 146 : 147 : 148 : 149 : ··· : 244 : NEXT »