Hello Kitty Eyes Shut
λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

πŸ’»κ³΅λΆ€ 기둝/πŸ“Œ λ¦¬μ•‘νŠΈ 기초 μŠ€ν„°λ””

[λ¦¬μ•‘νŠΈ 기초 μŠ€ν„°λ””] JavaScript μ—°μ‚°μž

λ°˜μ‘ν˜•

 

 

 

 

 

 

 

πŸ“‘ JavaScript μ—°μ‚°μž(Operators)

ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ—°μ‚°μžλŠ” κ°€μž₯ κΈ°λ³Έμ μ΄λ©΄μ„œλ„ ν•„μˆ˜μ μΈ μš”μ†Œμ΄λ‹€.

 

μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλ„ λ‹€μ–‘ν•œ μ—°μ‚°μžλ₯Ό μ œκ³΅ν•˜λŠ”λ°,

μ΄λŠ” λ³€μˆ˜μ˜ κ°’ λ³€κ²½λΆ€ν„° 쑰건문과 반볡문 μ œμ–΄κΉŒμ§€ κ΄‘λ²”μœ„ν•˜κ²Œ μ‚¬μš©λœλ‹€.

 

λ”°λΌμ„œ 이번 κΈ€μ—μ„œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μ£Όμš” μ—°μ‚°μžλ“€μ„ κ°„λ‹¨ν•œ μ˜ˆμ œμ™€ ν•¨κ»˜ μ •λ¦¬ν•΄λ³΄κ³ μž ν•œλ‹€.

 

 


➑️ λŒ€μž… μ—°μ‚°μž (Assignment Operator)

λ³€μˆ˜μ— 값을 ν• λ‹Ήν•  λ•Œ μ‚¬μš©ν•œλ‹€.

let var1 = 1;

 

 

λŒ€μž… μ—°μ‚°μžλŠ” λ‹¨μˆœν•΄ λ³΄μ΄μ§€λ§Œ,

const둜 μ„ μ–Έν•œ μƒμˆ˜μ—λŠ” μž¬ν• λ‹Ήμ΄ μ•ˆλœλ‹€λŠ” 점을 ν—·κ°ˆλ € ν•˜λŠ” κ²½μš°κ°€ λ§Žλ‹€.

const a = 10;
a = 20; // ❌ TypeError: Assignment to constant variable

 

μœ„μ˜ μ½”λ“œμ²˜λŸΌ constλŠ” 값이 λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” νŠΉμ§•μ„ κ°€μ§€κ³  μžˆμœΌλ―€λ‘œ

λ³€μˆ˜ 변경이 ν•„μš”ν•œ κ²½μš°μ—λŠ” λ°˜λ“œμ‹œ let을 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

 

 


βž•βž–βœ–οΈβž— μ‚°μˆ  μ—°μ‚°μž (Arithmetic Operator)

사칙연산 및 λ‚˜λ¨Έμ§€ 연산을 μˆ˜ν–‰ν•œλ‹€.

let num1 = 3 + 2; // 5
let num2 = 3 - 2; // 1
let num3 = 3 * 2; // 6
let num4 = 3 / 2; // 1.5
let num5 = 3 % 2; // 1

 

 

 πŸ“Œ μ°Έκ³ 

μžλ°”μŠ€ν¬λ¦½νŠΈλŠ” number νƒ€μž…μ΄ λͺ¨λ‘ λΆ€λ™μ†Œμˆ˜μ (64λΉ„νŠΈ float)으둜 처리되기 λ•Œλ¬Έμ—

μ˜ˆμƒμΉ˜ λͺ»ν•œ κ²°κ³Όκ°€ λ‚˜μ˜¬ 수 μžˆμŒμ— μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.

console.log(0.1 + 0.2); // 0.30000000000000004

 

λ”°λΌμ„œ 금육 계산 같은 정밀도가 μ€‘μš”ν•œ λ‘œμ§μ—μ„œλŠ” BitIntλ‚˜ Decimal λ“±μ˜ 라이브러리 μ‚¬μš©μ„ κ³ λ €ν•˜λŠ” 것이 μ’‹λ‹€κ³  ν•œλ‹€.

 

 


πŸ”„οΈ 볡합 λŒ€μž… μ—°μ‚°μž (Compound Assignment Operator)

λŒ€μž… μ—°μ‚°μžμ™€ μ‚°μˆ  μ—°μ‚°μžλ₯Ό κ²°ν•©ν•œ ν˜•νƒœμ΄λ‹€.

let num7 = 10;

num7 += 20; // 30
num7 -= 5;  // 25
num7 *= 2;  // 50
num7 /= 5;  // 10

 

 


⬆️⬇️ 증감 μ—°μ‚°μž (Increment / Decrement)

λ³€μˆ˜ 값을 1μ”© 증가(++) λ˜λŠ” κ°μ†Œ(--) μ‹œν‚¨λ‹€.

let num8 = 10;

console.log(num8++); // 10 (ν›„μœ„ μ—°μ‚°)
console.log(++num8); // 12 (μ „μœ„ μ—°μ‚°)

 

ν›„μœ„ μ—°μ‚°μž(λ³€μˆ˜++)λŠ” λ¨Όμ € λ³€μˆ˜ 값을 μ‚¬μš©ν•œ 후에 이λ₯Ό 증가 μ‹œν‚€λŠ” 것이고,

μ „μœ„ μ—°μ‚°μž(++λ³€μˆ˜)λŠ” λ¨Όμ € λ³€μˆ˜ 값을 μ¦κ°€μ‹œν‚¨ 후에 이 μ¦κ°€λœ 값을 μ‚¬μš©ν•˜λŠ” κ²ƒμ΄λΌλŠ” 점을 잘 κΈ°μ–΅ν•΄λ‘μž.

 

 

 


βš–οΈ 논리 μ—°μ‚°μž (Logical Operator)

Boolean 값에 λŒ€ν•œ 논리 연산을 μˆ˜ν–‰ν•œλ‹€.

let or = true || false;   // true
let and = true && false;  // false
let not = !true;          // false

 

μ‹€λ¬΄μ—μ„œλŠ” 보톡 κΈ°λ³Έκ°’ μ„€μ • λ“±μ˜ μƒν™©μ—μ„œ 논리 μ—°μ‚°μžλ₯Ό 자주 ν™œμš©ν•œλ‹€κ³  ν•œλ‹€.

let username = nickName || "Guest";

 

 


πŸ”Ž 비ꡐ μ—°μ‚°μž (Comparison Operator)

κ°’μ΄λ‚˜ μžλ£Œν˜•μ„ 비ꡐ할 λ•Œ μ‚¬μš©ν•œλ‹€.

let comp1 = 1 === "1"; // false (μžλ£Œν˜•κΉŒμ§€ 비ꡐ)
let comp2 = 1 !== 2; // true (κ°’κ³Ό μžλ£Œν˜• λ‹€λ₯΄λ©΄ true)

let comp3 = 1 == "1"; // true (κ°’λ§Œ 비ꡐ, μžλ£Œν˜•μ€ λ¬΄μ‹œν•¨)


//크기 비ꡐ
let comp4 = 2 > 1; // true
let comp5 = 2 < 1; // false
let comp6 = 2 >= 2; // true
let comp7 = 2 <= 2; // true

 

μ΄λ•Œ == 은 κ°’λ§Œ λΉ„κ΅ν•˜λŠ” 것이고,

=== 은 κ°’ + μžλ£Œν˜•κΉŒμ§€ λΉ„κ΅ν•œλ‹€λŠ” 것을 잘 κΈ°μ–΅ν•˜κ³  μžˆμ–΄μ•Ό λœλ‹€.

(μ‹€λ¬΄μ—μ„œλŠ” μ˜ˆμƒμΉ˜ λͺ»ν•œ νƒ€μž… λ³€ν™˜μ„ 막기 μœ„ν•΄ === μ‚¬μš©μ„ ꢌμž₯ν•œλ‹€κ³  ν•œλ‹€.)

 

 


πŸ“š κ²°λ‘ 

λ‚˜λŠ” κ·Έλ™μ•ˆ Cλ‚˜ Java 같은 정적 νƒ€μž… μ–Έμ–΄λ§Œ 주둜 닀뀄왔기 λ•Œλ¬Έμ—,

μ—°μ‚°μžλΌλŠ” κ°œλ… μžμ²΄λŠ” μ΅μˆ™ν•˜λ‹€κ³  μƒκ°ν–ˆμ—ˆλ‹€.

그런데 μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό 처음 μ ‘ν•΄λ³΄λ‹ˆ λ˜‘κ°™μ€ μ—°μ‚°μžλΌλ„ λ™μž‘ 방식이 μ‘°κΈˆμ”© λ‹€λ₯΄κ³ ,

특히 동적 νƒ€μž… μ–Έμ–΄λΌμ„œ μƒκΈ°λŠ” λ¬΅μ‹œμ  ν˜•λ³€ν™˜ 같은 뢀뢄이 μƒˆλ‘­κ³  λ‚―μ„€κ²Œ λ‹€κ°€μ™”λ‹€.

 

예λ₯Ό λ“€μ–΄, == 와 === 의 μ°¨μ΄λ‚˜, 10 + true 같은 연산이 μ‹€μ œλ‘œ μ–΄λ–»κ²Œ μ²˜λ¦¬λ˜λŠ”μ§€λŠ”

Cλ‚˜ Javaλ₯Ό ν•  λ•ŒλŠ” 크게 μ˜μ‹ν•˜μ§€ μ•Šμ•˜λ˜ λΆ€λΆ„μ΄μ—ˆλŠ”λ°,

이런 κ±Έ 직접 μ‹€ν—˜ν•΄λ³΄λ‹ˆ μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œλŠ” 기본적인 μ—°μ‚°μžμ‘°μ°¨λ„ 훨씬 더 주의 깊게 닀뀄야 ν•œλ‹€λŠ” κ±Έ λŠλ‚„ 수 μžˆμ—ˆλ‹€.

 

μ—°μ‚°μžλŠ” μ–Έμ–΄λ₯Ό λΆˆλ¬Έν•˜κ³  기초 μ€‘μ˜ κΈ°μ΄ˆκ² μ§€λ§Œ ,, 문득 μ–Έμ–΄λ§ˆλ‹€μ˜ νŠΉμ§•κ³Ό 철학이 λ¬»μ–΄λ‚˜λŠ” 것 κ°™λ‹€λŠ” 생각이 λ“€μ—ˆλ‹€ πŸ€”

λ°˜μ‘ν˜•