์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ ๊ฐ์ ํผ์ฐ์ฐ์๊ฐ ๋์ผํ์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๋ค.
- ๋๋ฑ ์ฐ์ฐ์ (equality operator) ==
- ์ผ์น ์ฐ์ฐ์ (identity operator) ===
๋ ์ฐ์ฐ์์ ์ฐจ์ด์ ์, ๋๋ฑ ์ฐ์ฐ์๋ ํ์ ์ ๋ณํํด์ ๊ฒ์ฌํ๊ณ ์ผ์น ์ฐ์ฐ์๋ ๊ทธ๋ ์ง ์๋ค๋ ๊ฒ์ด๋ค.
const stringFive = '5';
const numberFive = 5;
// == loose equality, with type conversion
console.log(stringFive == numberFive); //true
console.log(stringFive != numberFive); //false
// === strict equality, no type conversion
console.log(stringFive === numberFive); //false
console.log(stringFive !== numberFive); //true
์ ์ฝ๋์์ ์ฐ์ฐ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ๋๋ฑ ์ฐ์ฐ์๋ '5'์ 5๋ฅผ ๊ฐ๋ค๊ณ ์ธ์ํ๋ค. ์๋๋ฉด ํ์ ์ ๋ณํํด์ ๊ฒ์ฌํ๊ธฐ ๋ฌธ์์ด๊ณผ ์ซ์๋ฅผ ๊ฐ๋ค๊ณ ๋ณด๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ง๋ง ์ผ์น ์ฐ์ฐ์๋ ํ์ ์ด ๋ค๋ฅด๋ฉด ๊ฐ์ง ์๋ค๊ณ ํ๋จํ๋ค.
์ผ์น ์ฐ์ฐ์(===)์ ๊ฒ์ฌ ๊ธฐ์ค์ด ๋ ๋๊ธฐ ๋๋ฌธ์ strict equality๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. ๋๋ฑ ์ฐ์ฐ์(==)๋ loose equality๋ผ๊ณ ๋ ํ๋ค.
์ค๋ธ์ ํธ๋ ๋ฉ๋ชจ๋ฆฌ์ referenceํํ๋ก ์ ์ฅ๋๋ค. ์ค๋ธ์ ํธ๋ผ๋ฆฌ ๋น๊ตํ ๋๋ Reference๊ฐ ๊ฐ์์ง ๊ฐ์ง ์์์ง๋ฅผ ํ๋จํ๋ค.
const stringFive = '5';
const numberFive = 5;
// object equality by reference
const ellie1 = { name: 'ellie' };
const ellie2 = { name: 'ellie' };
const ellie3 = ellie1;
console.log(ellie1 == ellie2); //false
console.log(ellie1 === ellie2); //false
console.log(ellie1 === ellie3); //true
ellie1๊ณผ ellie2๋ ๋๊ฐ์ ๊ฐ์ ๊ฐ๊ณ ์์ง๋ง ์ ์ด์ ๋ค๋ฅธ reference์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ์ด๋ป๊ฒ ๋น๊ตํด๋ False์ด๋ค.
ellie3์ ellie1ํํ ์ reference๋ฅผ ๋๊ฒจ๋ฐ์๊ธฐ ๋๋ฌธ์ ๊ฐ์ reference๋ฅผ ๊ฐ๊ณ ์๋ค. ์ด ๋์ ๋น๊ตํ๋ฉด True์ด๋ค.
โ ์ฐ์ต ๋ฌธ์
// equality - puzzler
console.log(0 == false); //t
console.log(0 === false); //f
//0,null,'',undefined๋ ๋ค false๋ก ๊ฐ์ฃผ๋ ์ ์๋ค
//0๋ bullean ํ์
์ด ์๋๋ผ์ f
console.log('' == false); //t
console.log('' === false); //f
console.log(null == undefined); // t
console.log(null === undefined); // f
๐ Reference
- ์ ํ๋ธ ๋๋ฆผ์ฝ๋ฉ by ์๋ฆฌ : ์๋ฐ์คํฌ๋ฆฝํธ 4. ์ฝ๋ฉ์ ๊ธฐ๋ณธ
์๋ฐ์คํฌ๋ฆฝํธ classList ๋ก DOM์์์ ํด๋์ค ์ด๋ฆ ๊ฐ์ ธ์ค๊ธฐ (0) | 2021.01.28 |
---|---|
DOM appendChild๋ก ๋ฆฌ์คํธ์ ์์ ์ถ๊ฐํ๊ธฐ (0) | 2021.01.21 |
์๋ฐ์คํฌ๋ฆฝํธ Async VS Defer ์ฐจ์ด์ (0) | 2021.01.18 |
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์ & ์ด๋ฒคํธ ๋ฃจํ (MDN) (0) | 2020.10.19 |
์ฝ๋์นด๋ฐ๋ฏธ Javascript - HTTP๋? (0) | 2020.10.17 |
๋๊ธ ์์ญ