JavaScript

(==) 형변환 비교 (===) 엄격한 비교

태인킴 2020. 4. 29. 22:10
반응형


 

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 비교

또한 0false값은 같지만,

타입다르다고 출력 됩니다.

  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 비교

또한 nullundefined 의 비교에 경우

둘의 값같지만 타입다르다고 출력 됩니다.

null  == undefined 
// true 출력
null  === undefined 
// false 출력

 

자바스크립트의 undefined 타입에 대해서 궁금증이 생기신다면 여기를 읽어 주세요.

https://coding-food-court.tistory.com/20 

반응형

'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