μ΄μ€ λ±νΈλ(==)λ λ λμμ λΉκ΅ν λ μ ν λ³νμ μνν λ€ λΉκ΅λ₯Ό μννλ€.
== (λμ¨ν λΉκ΅ / λλ± μ°μ°μ)
console.log(0 == "0"); // true
console.log(5 == '5'); // true
console.log(null == undefined); // true
==λ νμ λ³νμ μλμΌλ‘ μννλ€.
κ·Έλμ μ«μ 5μ λ¬Έμ "5"λ₯Ό μλμΌλ‘ νμ λ³ννμ¬ λΉκ΅λ₯Ό μννλ€.
μ΄ κ²½μ°, κ°μ΄ κ°κΈ° λλ¬Έμ trueλ₯Ό λ°ννλ€.
nullκ³Ό unddefinedλ λΉ κ°μ λνλ΄λ―λ‘ κ°λ€κ³ νκ°λλ€.
=== (μ격ν λΉκ΅ / μΌμΉ μ°μ°μ)
console.log(0 == "0"); // false
console.log(5 == '5'); // false
console.log(null == undefined); // false
κ°λΏλ§ μλλΌ νμ μ΄ μ νν μΌμΉν΄μΌ trueλ₯Ό λ°ννλ€.
5μ "5"λ κ°μ κ°μ§λ§ νμ μ΄ λ€λ₯΄λ―λ‘ falseλ₯Ό λ°ννλ€.
κ·Έλ¦¬κ³ , nullκ³Ό undefinedλ νμ μ΄ λ€λ₯΄λ―λ‘ falseλ₯Ό λ°ννλ€.

===λ₯Ό μ¬μ©νλ κ²μ΄ λ μμ νκ³ μμΈ‘ κ°λ₯ν μ½λλ₯Ό μμ±νλ λ° μ’λ€!
==(λμ¨ν λΉκ΅)κ° μνν μ΄μ
==λ νμ
λ³ν(μ묡μ νλ³ν, Coercion) μ νλ©΄μ λΉκ΅νκΈ° λλ¬Έμ, μμμΉ λͺ»ν κ²°κ³Όκ° λμ¬ μ μλ€.
μ¦, κ°λ°μκ° μλνμ§ μμ κ°μ΄ trueλ‘ νκ°λ μλ μκ³ , λ²κ·Έλ‘ μ΄μ΄μ§ κ°λ₯μ±μ΄ λλ€!
π λͺ κ°μ§ μνν μ¬λ‘
λΆλ¦¬μΈ κ° λ³ν
console.log(false == 0); // true (false → 0 λ³ν)
console.log("" == 0); // true ("" → 0 λ³ν)
falseμ λΉ λ¬Έμμ΄ ""λ μλμΌλ‘ 0μΌλ‘ λ³νλμ΄ μ«μ 0κ° λΉκ΅λκΈ° λλ¬Έμ trueκ° λ°νλλ€.
곡백 λ¬Έμμ μ«μ λΉκ΅
console.log(" \t\n" == 0); // true (곡백 λ¬Έμλ€λ 0μΌλ‘ λ³νλ¨)
곡백 λ¬Έμλ λΉ λ¬Έμμ΄κ³Ό λμΌνκ² μ·¨κΈλμ΄ μ«μ 0μΌλ‘ λ³νλλ€.
nullκ³Ό undefined λΉκ΅
console.log(null == undefined); // true (λ λ€ λΉμ΄μλ€κ³ νλ¨)
===(μ격ν λΉκ΅)κ° μμ ν μ΄μ
console.log(false === 0); // false
console.log("" === 0); // false
console.log(null === undefined); // false
console.log(" \t\n" === 0); // false
===λ νμ κΉμ§ κ²μ¬νκΈ° λλ¬Έμ, μμΈ‘ κ°λ₯ν μ½λλ₯Ό λ§λ€ μ μλ€.
νλ³νμ΄ μΌμ΄λμ§ μμμ, κ°λ°μκ° μλν λλ‘ μ ννκ² λΉκ΅ν μ μλ€.
λ¬Όλ‘ , λΉ κ°μ ꡬλΆνκΈ° μν΄μ ==κ° κΌ νμν μν©λ μμ§λ§(μ: null == undefined λΉκ΅ μ), κ·Έκ² μλλΌλ©΄ 무쑰건 ===λ₯Ό μ°λ κ² λ μμ νκ³ μ’μ μ΅κ΄μ΄λ€.
x | y | == | === | Object.is | SameValueZero |
undefined | undefined | β true | β true | β true | β true |
null | null | β true | β true | β true | β true |
true | true | β true | β true | β true | β true |
false | false | β true | β true | β true | β true |
'foo' | 'foo' | β true | β true | β true | β true |
0 | 0 | β true | β true | β true | β true |
+0 | -0 | β true | β true | β false | β true |
+0 | 0 | β true | β true | β true | β true |
-0 | 0 | β true | β true | β false | β true |
0n | -0n | β true | β true | β true | β true |
0 | false | β true | β false | β false | β false |
"" | false | β true | β false | β false | β false |
"" | 0 | β true | β false | β false | β false |
'0' | 0 | β true | β false | β false | β false |
'17' | 17 | β true | β false | β false | β false |
[1, 2] | '1,2' | β true | β false | β false | β false |
new String('foo') | 'foo' | β true | β false | β false | β false |
null | undefined | β true | β false | β false | β false |
null | false | β false | β false | β false | β false |
undefined | false | β false | β false | β false | β false |
{ foo: 'bar' } | { foo: 'bar' } | β false | β false | β false | β false |
new String('foo') | new String('foo') | β false | β false | β false | β false |
0 | null | β false | β false | β false | β false |
0 | NaN | β false | β false | β false | β false |
'foo' | NaN | β false | β false | β false | β false |
NaN | NaN | β false | β false | β true | β true |
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Equality_comparisons_and_sameness
λλ± λΉκ΅ λ° λμΌμ± - JavaScript | MDN
JavaScriptλ λ€μ μΈ κ°μ§μ κ° λΉκ΅ μ°μ°μ μ 곡ν©λλ€.
developer.mozilla.org
'πΏππππππππππ π»πππππππ > πΉπππππππππ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] ES6 κ°μ²΄ 리ν°λ΄ λ¨μΆ νκΈ°λ²(Object Property Shorthand) (0) | 2025.03.11 |
---|---|
[JavaScript] μ½λ°±(Callback)ν¨μλ (0) | 2025.03.09 |
[Javascript] Array.prototype.every()λ every() ν¨μ μ¬μ©λ² (0) | 2025.03.07 |
[JavaScript] λ κ°μ λ°°μ΄ ν©μΉλ λ°©λ² (0) | 2025.03.05 |
[JavaScript] νμ΄μ§ λ‘λ μ textarea μλ μ‘°μ (ν μ ν κ³ λ €) (0) | 2024.11.14 |