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

λ…μ„œ λͺ©λ‘/λͺ¨λ”₯λ‹€ Modern JS Deep Dive

[λͺ¨λ”₯λ‹€] 07μž₯ 데이터 νƒ€μž… (7.5~7.13)

728x90

(μˆ˜μ • 23.4.27)

 

μ•ž λ‚΄μš©

https://mayongee.tistory.com/306

 

[λͺ¨λ”₯λ‹€] 07μž₯ 데이터 νƒ€μž… (7.1~7.4)

(μˆ˜μ • 23.4.27) μ—°μ‚°μžλŠ” ν•˜λ‚˜ μ΄μƒμ˜ ν‘œν˜„μ‹μ„ λŒ€μƒμœΌλ‘œ μ‚°μˆ , ν• λ‹Ή, 비ꡐ, 논리, νƒ€μž… 등을 μˆ˜ν–‰ν•΄ ν•˜λ‚˜μ˜ 값을 λ§Œλ“ λ‹€. ν”Όμ—°μ‚°μž - 'κ°’'μ΄λΌλŠ” λͺ…사 μ—­ν• , μ—°μ‚°μž - 'μ—°μ‚°ν•΄ μƒˆλ‘œμš΄ 값을 λ§Œλ“ λ‹€' 라

mayongee.tistory.com

 

 

 

 

πŸͺ… 7.5 논리 μ—°μ‚°μž 

 

|| (논리합)

&& (논리곱)

! (λΆ€μ •)

 

!λŠ” μ–Έμ œλ‚˜ boolean 값을 λ°˜ν™˜ν•˜μ§€λ§Œ ν”Όμ—°μ‚°μžκ°€ λ°˜λ“œμ‹œ λΆˆλ¦¬μ–Έ 값일 ν•„μš”λŠ” μ—†λ‹€.

boolean κ°’μœΌλ‘œ μ•”λ¬΅μ μœΌλ‘œ λ³€ν™˜λ˜κΈ° λ•Œλ¬Έ. 

|| 와 && λŠ” λ‹¨μΆ•ν‰κ°€λ‘œ 인해 κ²°κ³Όκ°€ boolean 값이 아닐 μˆ˜λ„ μžˆλ‹€

πŸͺ„ λ“œ λͺ¨λ₯΄κ°„μ˜ 법칙

 !(A || B) === (!A && !B)
 !(A && B) === (!A || !B)

10년도 더 전에 λ³Έ κ±° 같은데..

 

 

 

 

πŸͺ… 7.6 μ‰Όν‘œ μ—°μ‚°μž

 

μ™Όμͺ½ -> 였λ₯Έμͺ½ λ°©ν–₯으둜 평가.

평가가 λλ‚˜λ©΄ λ§ˆμ§€λ§‰ ν”Όμ—°μ‚°μžμ˜ 평가λ₯Ό λ°˜ν™˜ν•¨. 

let a, b, c;
a= 1, b = 2, c = 3; //3

 

 

 

 

πŸͺ… 7.7 κ·Έλ£Ή μ—°μ‚°μž

() 둜 κ°μ‹ΈλŠ” κ·Έλ£Ή μ—°μ‚°μž. κ°€μž₯ λ¨Όμ € 평가됨. -> μš°μ„ μˆœμœ„ 쑰절 κ°€λŠ₯. 

 

 

 

 

πŸͺ… 7.8 typeOf μ—°μ‚°μž

string, number, boolean, undefined, symbol, object, function 쀑 ν•˜λ‚˜λ₯Ό λ°˜ν™˜. 

(null 을 λ°˜ν™˜ν•˜λŠ” κ²½μš°λŠ” μ—†μŒ. )

πŸ’š typeof null 을 ν•˜λ©΄ -> object κ°€ λ°˜ν™˜λ¨. - JS 의 첫번째 λ²„κ·Έμž„. 

null 인지 ν™•μΈν•˜κ³  μ‹ΆμœΌλ©΄ null === 을 μ‚¬μš©ν•˜κΈ°. 

 

μ„ μ–Έν•˜μ§€ μ•Šμ€ μ‹λ³„μžλŠ” undefined κ°€ λ°˜ν™˜λ¨. 

 

 

 

 

 πŸͺ…7.9 μ§€μˆ˜ μ—°μ‚°μž

 

ES7μ—μ„œ λ„μž…λ¨. 

(μ’Œν•­ -> λ°‘) ** (μš°ν•­ -> μœ„)

      μš°ν•­
μ’Œν•­

 

2 ** 2; // 4

=== Math.pow(2, 2);

2 ** 0; // 1

=== Math.pow(2, 0);

 

음수λ₯Ό κ±°λ“­μ œκ³±μ˜ λ°‘μœΌλ‘œ μ‚¬μš©ν•΄ κ³„μ‚°ν•˜λ €λ©΄ κ΄„ν˜Έλ‘œ λ¬Άμ–΄μ•Ό ν•œλ‹€. 

(-3) ** 2 // 9;

 

μ§€μˆ˜ μ—°μ‚°μžλŠ” 이항 μ—°μ‚°μž μ€‘μ—μ„œ μš°μ„ μˆœμœ„κ°€ κ°€μž₯ λ†’λ‹€.

ν• λ‹Ή μ—°μ‚°μžλ‘œλ„ μ‚¬μš©μ΄ κ°€λŠ₯. 

const num = 5; 

num **= 2; 

//num === 25

 

 

 

 

πŸͺ… 7.10 κ·Έ μ™Έ μ—°μ‚°μž

 

?. μ˜΅μ…”λ„ 체이닝 μ—°μ‚°μž

?? null 병합 μ—°μ‚°μž 

delete ν”„λ‘œνΌν‹° μ‚­μ œ

new μƒμ„±μž ν•¨μˆ˜ 호좜 μ‹œ μΈμŠ€ν„΄μŠ€ 생성

instanceof μ™Όμͺ½ 객체가 였λ₯Έμͺ½μ˜ μƒμ„±μž ν•¨μˆ˜μ™€ μ—°κ²°λœ μΈμŠ€ν„΄μŠ€μΈμ§€ νŒλ³„

in ν”„λ‘œνΌν‹° 쑴재 확인

 

(μš°μ„ μ€ 이런게 μžˆκ΅¬λ‚˜ ν•˜κ³  λ„˜μ–΄κ°€μž)

 

 

 

 

πŸͺ… 7.11 μ—°μ‚°μžμ˜ λΆ€μˆ˜ 효과

 

λŒ€λΆ€λΆ„μ€ λ‹€λ₯Έ μ½”λ“œμ— 영ν–₯ X, 

λΆ€μˆ˜ νš¨κ³Όκ°€ μžˆλŠ” μ—°μ‚°μžλŠ” : = (ν• λ‹Ή), ++, -- (증가/κ°μ†Œ μ—°μ‚°μž), delete μ—°μ‚°μž(객체의 ν”„λ‘œνΌν‹° μ‚­μ œ) 

var o = { a: 1 };
delete o.a;
console.log(o); // {}

 

 

 

 

πŸͺ… 7.12 μ—°μ‚°μž μš°μ„ μˆœμœ„

 

μ™ΈμšΈ ν•„μš” μ—†μŒ. κ°€μž₯ λ¨Όμ € ν•΄μ•Όν•˜λŠ” κ±Έ () 둜 묢으면 됨. 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

 

μ—°μ‚°μž μš°μ„ μˆœμœ„ - JavaScript | MDN

μ—°μ‚°μž μš°μ„ μˆœμœ„λŠ” μ—°μ‚°μžλ₯Ό μ‹€ν–‰ν•˜λŠ” μˆœμ„œλ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. μš°μ„ μˆœμœ„κ°€ 높은 μ—°μ‚°μžκ°€ λ¨Όμ € μ‹€ν–‰λ©λ‹ˆλ‹€.

developer.mozilla.org

 

 

 

πŸͺ… 7.13 μ—°μ‚°μž κ²°ν•© μˆœμ„œ

κ²°ν•© μˆœμ„œκ°€ λ‹€λ₯Έλ°, ν•˜λ‹€λ³΄λ©΄ μžμ—°μŠ€λŸ½κ²Œ μ•Œκ²Œ λ˜λŠ” κ²ƒλ“€μž„. 

 

 

 

728x90
λ°˜μ‘ν˜•