동등 연산자(==) 와 일치 연산자(===)

  • 연산자(operator) : + - / * = === !== 이와 같이 계산을 하는데 쓰이는 기호
  • 피연산자(operand) : 연산에 대상이 되는 것들 (1+5 에서는 1과 5가 피연산자)

* 동등 연산자(==)

두 개의 피연산자가 동일한지 확인하며, 동일하다면 true, 다르다면 false로 Boolean값을 반환한다.
일치 연산자(===)와는 다르게, 서로 다른 타입(string, number, boolean..)을 가진 피연산자들끼리의 비교를 시도한다.

* 일치 연산자(==)

두 개의 피연산자가 동일한지 확인하되, 더 엄격하게 타입(string, number, boolean..)까지 동일한지를 확인한 후에 Boolean값을 반환한다.
동등 연산자(==)와는 다르게, 항상 다른 타입의 피연산자들을 서로 다른 것으로 간주한다.

//숫자와 문자열
const number = 1;
const string = '1';

console.log(number == number); // true
console.log(string == string); // true
console.log(number == string); // true
console.log(number === string); // false

//---------------------------------------

//falsy한 값
console.log(0 == false) // true
console.log(0 === false) // false
console.log('0' == false) // true
console.log('0' === false) // false
console.log("" == false); // true
console.log("" === false); // false
//이건 이해안감... 위에와 같은 falsy 인데 왜?
console.log(NaN == false) // false
console.log(null == false); // false
console.log(undefined == false); // false



console.log(NaN == NaN) // false
console.log(NaN === NaN) // false

console.log(null == null); // true
console.log(null === null); // true

console.log(null == undefined); // true
console.log(null === undefined); // false

console.log(undefined == undefined); // true
console.log(undefined === undefined); // true

//---------------------------------------

//*배열/객체는 같은 값으로 취급될려면 같은 배열/객체를 참조하고 있어야 한다

//배열
const array1 = [1];
const array2 = [1];
console.log(array1 == array1) // true
console.log(array1 == array2) // false

//객체
const object1 = {
  apple : 'red'
}
const object2 = {
  apple : 'red'
}
console.log(object1 == object1) // true
console.log(object1 == object2) // false

좋은 웹페이지 즐겨찾기