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

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

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

728x90

(μˆ˜μ • 23.4.27)

 

μ—°μ‚°μžλŠ” ν•˜λ‚˜ μ΄μƒμ˜ ν‘œν˜„μ‹μ„ λŒ€μƒμœΌλ‘œ μ‚°μˆ , ν• λ‹Ή, 비ꡐ, 논리, νƒ€μž… 등을 μˆ˜ν–‰ν•΄ ν•˜λ‚˜μ˜ 값을 λ§Œλ“ λ‹€.

ν”Όμ—°μ‚°μž - 'κ°’'μ΄λΌλŠ” λͺ…사 μ—­ν• , 

μ—°μ‚°μž - 'μ—°μ‚°ν•΄ μƒˆλ‘œμš΄ 값을 λ§Œλ“ λ‹€' λΌλŠ” 동사 μ—­ν• 

 

 

πŸͺ… 7.1 μ‚°μˆ  μ—°μ‚°μž

 

μˆ˜ν•™μ  계산 μˆ˜ν–‰ & λΆˆκ°€λŠ₯ μ‹œ NaN 을 λ°˜ν™˜

 

 

7.1.1 이항 μ‚°μˆ  μ—°μ‚°μž

일반 계산식 같은 것. +, -, *, /, %

 

 

7.1.2 단항 μ‚°μˆ  μ—°μ‚°μž

 

1개의 ν”Όμ—°μˆ μžλ₯Ό μ‚°μˆ  μ—°μ‚°ν•΄ 숫자 값을 λ§Œλ“ λ‹€.

++, -- 

ν”Όμ—°μ‚°μžμ˜ 값을 λ³€κ²½ν•˜λŠ” 암묡적 할당이 μžˆλ‹€λŠ” 것을 주의!

πŸ’šμœ„μΉ˜μ— μ˜λ―Έκ°€ 있음. 

: μ•žμ— μžˆμ„ 경우 λ¨Όμ € 증가/κ°μ†Œ ν›„ λ‹€λ₯Έ μ—°μ‚° => 선증가/κ°μ†Œ ν›„ ν• λ‹Ή

: 뒀에 μžˆλŠ” 경우 λ¨Όμ € λ‹€λ₯Έ μ—°μ‚° ν›„ 증가/κ°μ†Œ => μ„ ν• λ‹Ή ν›„ 증가/κ°μ†Œ

μˆ«μžνƒ€μž…μ΄ μ•„λ‹Œ ν”Όμ—°μ‚°μžμ— + λ₯Ό 뢙이면 μˆ«μžνƒ€μž…μœΌλ‘œ λ³€ν™˜ν•œ 값을 μƒμ„±ν•΄μ„œ λ°˜ν™˜. ( κ·Έ κ°’ μžμ²΄κ°€ λ³€ν•˜λŠ” 건 μ•„λ‹˜)

-λ₯Ό 뢙이면 λΆ€ν˜Έ λ°˜μ „μΈλ°, 숫자 νƒ€μž…μ΄ 아닐 경우 μˆ«μžνƒ€μž…μœΌλ‘œ λ³€ν™˜ν•˜μ—¬ λ°˜ν™˜ν•œλ‹€. (μ–˜λ„ μ—­μ‹œ κ°’ μžμ²΄κ°€ λ³€ν•˜λŠ” 것은 μ•„λ‹˜)

 

 

7.1.3 λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μž

 

+ μ—°μ‚°μžλŠ” ν”Όμ—°μ‚°μž 쀑 ν•˜λ‚˜ 이상이 λ¬Έμžμ—΄μΈ 경우 λ¬Έμžμ—΄ μ—°κ²° μ—°μ‚°μžλ‘œ λ™μž‘ν•¨.

(숫자 + 문자 => 문자)

 

πŸ’šμ•”λ¬΅μ  νƒ€μž… λ³€ν™˜, νƒ€μž… κ°•μ œ λ³€ν™˜ 

: JS에 μ˜ν•΄ μ•”λ¬΅μ μœΌλ‘œ νƒ€μž…μ΄ μžλ™ λ³€ν™˜λ˜λŠ” 것

1 + '2' => '12'

1 + true = > 2

1 + false => 1

1 + null => 1 (null 은 0 으둜 λ³€κ²½)

1 + undefined => NaN (undefined λŠ” 숫자둜 νƒ€μž… λ³€ν™˜λ˜μ§€ μ•ŠμŒ.)

 

 

 

 

πŸͺ… 7.2 ν• λ‹Ή μ—°μ‚°μž

 

x += 1 은 x = x +1 κ³Ό κ°™λ‹€

λ¬Έμžμ—΄μ—λ„ μ‚¬μš©ν•  수 μžˆλ‹€.

const greeting = 'hi';
greeting += 'Sally';
console.log(greeting);

// => hi Sally

할당문은 κ°’μœΌλ‘œ ν‘œν˜„λ˜λŠ” ν‘œν˜„μ‹ -> ν• λ‹Ήλœ κ°’μœΌλ‘œ 평가됨

=> 할당문을 λ‹€λ₯Έ λ³€μˆ˜μ— ν• λ‹Ήν•  μˆ˜λ„ μžˆλ‹€. 

연쇄 ν• λ‹Ή a=b=c=0 (였λ₯Έμͺ½μ—μ„œ μ™Όμͺ½μœΌλ‘œ 순차적으둜 진행됨) a, b, c μ „λΆ€ 0

πŸ‘ˆπŸ‘ˆπŸ‘ˆ

 

 

 

πŸͺ… 7.3 비ꡐ μ—°μ‚°μž

 

비ꡐ ν›„ λΆˆλ¦¬μ–Έ κ°’ λ°˜ν™˜

 

 

7.3.1 동등/일치 비ꡐ μ—°μ‚°μž

 

=== : νƒ€μž…κΉŒμ§€ 비ꡐ (일치 비ꡐ μ—°μ‚°μž)

== : κ°’λ§Œ 비ꡐ (동등 비ꡐ μ—°μ‚°μž)

 

λ™λ“±λΉ„κ΅λŠ” ν”Όμ—°μ‚°μžλ₯Ό 비ꡐ할 λ•Œ, 암묡적 νƒ€μž… λ³€ν™˜μ„ 톡해 νƒ€μž…μ„ μΌμΉ˜μ‹œν‚¨ ν›„ => 비ꡐ

λ™λ“±λΉ„κ΅λŠ” μ˜ˆμΈ‘ν•˜κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ— 일치 비ꡐ(===) λ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹λ‹€.

ex)

'0' == ' ' // false

0 == ' ' // true

false == 'false' // false

false == null // false

false == undefined // false

 

(μ§€λ§˜λŒ€λ‘œμž–μ•„!)

 

 

NaN 은 μžμ‹ κ³Ό μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” μœ μΌν•œ 값이닀.

NaN === NaN; // false

(μš”μƒν•œ 녀석이닀..)

0κ³Ό -0 을 동등비ꡐ ν•˜λ©΄ true κ°€ λ‚˜μ˜¨λ‹€.

 

0은 음/μ–‘ 상관없이 μΌμΉ˜ν•œλ‹€.

0 === -0 

 

 

7.3.2 λŒ€μ†Œ 관계 비ꡐ μ—°μ‚°μž

>, <, >=, <=

 

 

 

πŸͺ… 7.4 μ‚Όν•­ 쑰건 μ—°μ‚°

 

μ‘°κ±΄μ‹μ˜ 평가 결과에 따라 λ°˜ν™˜ν•  값을 κ²°μ •ν•œλ‹€.

쑰건식 ? true이면 μ—¬κΈ° μžˆλŠ”κ±° : false 이면 μ—¬κΈ° μžˆλŠ”κ±°;

-> 쑰건식은 λΆˆλ¦¬μ–Ένƒ€μž…μœΌλ‘œ ν‰κ°€λ˜λŠ”λ°, λ§Œμ•½ λΆˆλ¦¬μ–Έ νƒ€μž…μ΄ μ•„λ‹ˆλ©΄ μ•”λ¬΅μ μœΌλ‘œ λΆˆλ¦¬μ–Ένƒ€μž…μœΌλ‘œ λ³€ν™˜λ¨

μ‚Όν•­μ—°μ‚°μžμ™€ if else 문의 κ°€μž₯ 큰 차이점 : μ‚Όν•­ μ—°μ‚°μžλ₯Ό κ°’μœΌλ‘œ μ‚¬μš©ν•  수 μžˆμ§€λ§Œ, if 문은 μ•ˆλ¨. 

=> if... else 문은 κ°’μ²˜λŸΌ μ‚¬μš©ν•  수 μ—†λ‹€.

=> μ‚Όν•­ μ—°μ‚°μžλŠ” κ°’μœΌλ‘œ ν‘œν˜„ν•  수 μžˆλŠ” ν‘œν˜„μ‹ λ¬Έ. 맀우 유용.

πŸ’šμ‘°κ±΄μ— 따라 값을 κ²°μ •ν•΄μ•Όν•œλ‹€λ©΄ => μ‚Όν•­ μ—°μ‚°μž

πŸ’šμ‘°κ±΄μ— 따라 μˆ˜ν–‰ν•΄μ•Ό ν•  문이 ν•˜λ‚˜κ°€ μ•„λ‹ˆλΌλ©΄ => if.. else

 

 

 

 

λ’· λ‚΄μš©

https://mayongee.tistory.com/313

 

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

πŸͺ… 7.5 논리 μ—°μ‚°μž || (논리합) && (논리곱) ! (λΆ€μ •) !λŠ” μ–Έμ œλ‚˜ boolean 값을 λ°˜ν™˜ν•˜μ§€λ§Œ ν”Όμ—°μ‚°μžκ°€ λ°˜λ“œμ‹œ λΆˆλ¦¬μ–Έ 값일 ν•„μš”λŠ” μ—†λ‹€. boolean κ°’μœΌλ‘œ μ•”λ¬΅μ μœΌλ‘œ λ³€ν™˜λ˜κΈ° λ•Œλ¬Έ. || 와 && λŠ” 단좕평가

mayongee.tistory.com

 

 

 

728x90
λ°˜μ‘ν˜•