λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

study/java$cript

[javascript] === / !== / == / != 의 λ‹€λ₯Έ 점은 λ¬΄μ—‡μΌκΉŒ ?

λ°˜μ‘ν˜•

 


 

πŸ’‘

μ˜€λŠ˜μ€ μ•Œμ•„λ‘λ©΄ 쒋은 κ°œλ…μΈ λ™μΉ˜μ—°μ‚°μžμ— λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ™μΉ˜μ—°μ‚°μž : 동등 == / λΆ€λ“± != / 일치 === / 뢈일치 !==

 

 

일치 / 뢈일치 μ—°μ‚°μž : === / !==

 === 일치 λ˜λŠ”  !== λΆˆμΌμΉ˜ 연산은  νƒ€μž…(type) κ³Ό  κ°’(value)  λ‘ 가지가 κ°™μ•„μ•Ό ν•œλ‹€.

number νƒ€μž…μΈ 경우, 같은 νƒ€μž…μΈ number와 같은 값인 5에 λŒ€ν•΄ ν˜Έμ‘!

console.log(5 === 5)		//true
console.log(5 === '5')		//false (number, string)
console.log(5 !== '5')		//ture (number, string)
console.log(5 !== 5)		//false

 

동등 / λΆ€λ“± μ—°μ‚°μž : == / !=

 ==  동등연산 λ˜λŠ”  !=  뢀등연산은 κ°•μ œ ν˜•λ³€ν™˜(type coercion) μ„ μˆ˜ν–‰ν•˜μ—¬ 비ꡐ μ „ κ³΅ν†΅νƒ€μž…μœΌλ‘œ λ§Œλ“ λ‹€.

console.log(5 == '5')		//true
console.log(5 != '5')		//false
console.log(5 != 5)		//false
console.log(5 != 0)		//true

 

falsy

κ·Έλ ‡λ‹€λ©΄ 0κ³Ό falseλ₯Ό 비ꡐ해 보면?

console.log(false == 0)		//true
console.log(false === 0)	//false

 

false일 쀄 μ•Œμ•˜μœΌλ‚˜ false == 0 은 true 값이 λ‚˜μ˜€λŠ” μ΄μœ λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ 0은 falsy의 값이기 λ•Œλ¬Έ!

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” 0을 κ°•μ œλ‘œ false λ³€ν™˜μ„ μ‹œμΌœλ²„λ Έκ³  false둜 λ³€ν™˜λœ 0은 κ²°κ΅­ false와 κ°™κ²Œ λœλ‹€.

βœ… μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ falsy의 6가지 κ°’ βœ…

false , 0 , null , " " , undefined , NaN

 

console.log(false == 0)			//true
console.log(false == "")		//true

// nullκ³Ό undefinedλŠ” μ„œλ‘œ κ°™μœΌλ©° 자기 μžμ‹ λ„ κ°™μŒ
console.log(null == null)		//true
console.log(null == undefined)		//true

// NaN은 μ–΄λ– ν•œ κ°’(μžκΈ°μžμ‹  포함)도 λ™μΌν•˜μ§€ μ•ŠμŒ
console.log(NaN == null)		//false
console.log(NaN == undefined)		//false
console.log(NaN == NaN)			//false

 

κ²°λ‘ 

 ===  μΌμΉ˜ 및  !==  뢈일치 μ—°μ‚°μžλŠ”  ==  λ™λ“± 및  !=  λΆ€λ“±μ—°μ‚°μž 보닀 ν™•μ‹€νžˆ 비ꡐ할 수 있고 ν”Όμ—°μ‚°μžλ“€μ΄

κ°–λŠ” νƒ€μž…(type)κ³Ό κ°’(value)의 비ꡐ가 μ •ν™•ν•˜λ―€λ‘œ 일치/뢈일치 μ—°μ‚°μžλ₯Ό μ“°λŠ” 것을 μΆ”μ²œν•œλ‹€!

λ°˜μ‘ν˜•