πŸ‘¨πŸ»β€πŸ’» λͺ¨λ˜ λ¦¬μ•‘νŠΈ Deep Dive

pjw__98Β·2023λ…„ 12μ›” 6일
1
post-thumbnail

πŸ“† λ‚ μ§œ

2023/12/06(수)

πŸ“š 챕터

비ꡐ 곡식 Object.is


πŸ‘¨πŸ»β€πŸ’» ν•™μŠ΅λ‚΄μš©

Object.isλŠ” Object.is(인수1,인수2); 처럼
두 개의 인수λ₯Ό λ°›μœΌλ©°,이 인수 두 κ°œκ°€ λ™μΌν•œμ§€ ν™•μΈν•˜κ³ 
λ°˜ν™˜ν•˜λŠ” λ©”μ„œλ“œλ‹€.
Object.isλŠ” λ™λ“±λΉ„κ΅μ—°μ‚°μž(==)λ‚˜ μΌμΉ˜λΉ„κ΅μ—°μ‚°μž(===)와 μ–΄λ–€ 차이점을 κ°€μ§€κ³  μžˆλŠ”μ§€ μ‚΄νŽ΄λ³΄μž.

🎯 λ™λ“±λΉ„κ΅μ—°μ‚°μž( == ) πŸ†š Object.is

  • 동등 λΉ„κ΅μ—°μ‚°μžλŠ” κ°™μŒμ„ λΉ„κ΅ν•˜κΈ° 전에
    μ–‘μͺ½μ΄ 같은 νƒ€μž…μ΄ μ•„λ‹ˆλΌλ©΄ 비ꡐ할 수 μžˆλ„λ‘ κ°•μ œλ‘œ ν˜•λ³€ν™˜(type casting)을 ν•œ 후에 λ³€κ²½ν•œλ‹€.
    즉 5 == '5'와 같이 ν˜• λ³€ν™˜ 후에 값이 λ™μΌν•˜λ‹€λ©΄ ==λŠ” trueλ₯Ό λ°˜ν™˜ν•œλ‹€.
    ν•˜μ§€λ§Œ Object.isλŠ” μ΄λŸ¬ν•œ μž‘μ—…μ„ ν•˜μ§€ μ•ŠλŠ”λ‹€. 즉, ===와 λ™μΌν•˜κ²Œ νƒ€μž…μ΄ λ‹€λ₯΄λ©΄ κ·Έλƒ₯ falseλ‹€.

🎯 μΌμΉ˜λΉ„κ΅μ—°μ‚°μž ( === ) πŸ†š Object.is

  • μΌμΉ˜λΉ„κ΅μ—°μ‚°μž 보닀 Object.isκ°€ μ’€ 더 κ°œλ°œμžκ°€ κΈ°λŒ€ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ •ν™•νžˆ λΉ„κ΅ν•œλ‹€.
    μ˜ˆμ œμ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄μž.
<script>
-0 === +0// true
Object.is(-0, +0)//false

Number.NaN === NaN // false
Object.is(Number.NaN,NaN) // true

NaN === 0 / 0 //false
Object.is(NaN, 0 / 0) // true
</script>

이렇듯 λ™λ“±λΉ„κ΅μ—°μ‚°μž(==)λ‚˜ μΌμΉ˜λΉ„κ΅μ—°μ‚°μž(===)κ°€ λ§Œμ‘±ν•˜μ§€ λͺ»ν•˜λŠ” λͺ‡ κ°€μ§€ νŠΉμ΄ν•œ μΌ€μ΄μŠ€λ₯Ό μΆ”κ°€ν•˜κΈ° μœ„ν•΄,
Object.isκ°€ λ‚˜λ¦„ μ•Œκ³ λ¦¬μ¦˜μœΌλ‘œ μž‘λ™ν•˜λŠ” 것을 μ•Œ 수 μžˆλ‹€.
ν•œκ°€μ§€ μ£Όμ˜ν•΄μ•Ό ν•  점은. Object.isλ₯Ό μ‚¬μš©ν•œλ‹€ ν•˜λ”λΌλ„ 객체 λΉ„κ΅μ—λŠ”
별 차이가 μ—†λ‹€λŠ” 것이닀. 객체 λΉ„κ΅λŠ” μ•žμ„œ μ΄μ•ΌκΈ°ν•œ 객체 비ꡐ 원리와 λ™λ“±ν•˜λ‹€.
객체 비ꡐ 원리

<script>
Object.is({},{})//false

const a = {
	hello : 'hi',
    }
    
    const b = a;
    
    Object.is(a,b)//true
    a === b // true
</script>

Object.isλŠ” 일치 비ꡐ μ—°μ‚°μž (===) κ°€ κ°€μ§€λŠ” ν•œκ³„λ₯Ό κ·Ήλ³΅ν•˜κΈ° μœ„ν•΄ ES6λΆ€ν„° λ§Œλ“€μ–΄μ‘Œλ‹€.
ν•˜μ§€λ§Œ μ—¬μ „νžˆ 객체 κ°„ 비ꡐ에 μžˆμ–΄μ„œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ νŠΉμ§•μœΌλ‘œ 인해 μΌμΉ˜λΉ„κ΅μ—°μ‚°μž(===)와 λ™μΌν•˜κ²Œ λ™μž‘ν•˜λŠ”κ²ƒμ„ μ•Œ 수 μžˆλ‹€.

➑️ λ‹€μŒμ€ λ¦¬μ•‘νŠΈμ—μ„œμ˜ 동등 비ꡐ에 λŒ€ν•΄ μ•Œμ•„λ³΄μž.

profile
β˜„οΈ

0개의 λŒ“κΈ€