반응형
JavaScript 는 동적 타입 언어 입니다.
동적 타입은 타입 (자료형) 이 컴파일 시에 정해 지는 것이 아니라, 실행 시에 정해 집니다.
따라서 자바스크립트 에서는 (==) 동등 비교 연산자(형변환 비교) 뿐만 아니라, (===) 일치 비교 연산자(엄격한 비교) 가 존재 합니다.
1. (==)동등 연산자와 (===)일치 연산자
(===) 일치 연산자는 두 피연산자가 같은 자료형, 같은 값 일 경우에 true 를 반환 합니다.
(==) 동등 연산자는 두 피연산자를 같은 자료형으로 형변환 후에 값이 같은 경우 true 를 반환 합니다.
console.log(1 == 1);
// true 출력
console.log('1' == 1);
// true 출력
console.log(1 === 1);
// true 출력
console.log('1' === 1);
// false 출력
2. 0 과 false 비교
또한 0 과 false 는 값은 같지만,
타입은 다르다고 출력 됩니다.
0 == false
// true 출력
0 === false
// false 출력
3. 객체 와 객체 비교
(==) 동등 비교시에 피연산자가 모두 객체 일 경우,
메모리의 같은 객체를 바라 보고 있으면 true 를 출력 합니다.
function Test(){}
var test = new Test();
var test2 = new Test();
test == test2
// false 출력
test === test2
// false 출력
function Test(){}
var test = Test.prototype;
var test2 = Test.prototype;
test == test2
// true 출력
test === test2
// true 출력
4. null 와 undefined 비교
또한 null 과 undefined 의 비교에 경우
둘의 값은 같지만 타입은 다르다고 출력 됩니다.
null == undefined
// true 출력
null === undefined
// false 출력
자바스크립트의 undefined 타입에 대해서 궁금증이 생기신다면 여기를 읽어 주세요.
반응형
'JavaScript' 카테고리의 다른 글
JavaScript split 함수 (0) | 2020.07.10 |
---|---|
JavaScript 배열과 유사배열(call) (0) | 2020.07.04 |
undefined 타입 (0) | 2020.04.29 |
oninput onchange Event (0) | 2020.04.28 |
JSON.stringify JSON.parse (0) | 2020.04.26 |