eazyseon 2023. 11. 12. 16:08
λ°˜μ‘ν˜•

4.1 λ³€μˆ˜

μ»΄ν“¨ν„°λŠ” κΈ°μ–΅ν•˜κ³  싢은 값을 λ©”λͺ¨λ¦¬μ— μ €μž₯ν•˜κ³ , μ €μž₯된 값을 μž¬μ‚¬μš©ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€. 즉, κ°’μ˜ μœ„μΉ˜λ₯Ό κ°€λ¦¬ν‚€λŠ” 이름! 

 

4.2 μ‹λ³„μž 

λ³€μˆ˜ 이름을 μ‹λ³„μžλΌκ³ λ„ ν•œλ‹€. (κ³ μœ ν•œ 이름)

const result = 10 + 20;

 

μ—¬κΈ°μ„œ μ‹λ³„μž resultλŠ” κ°’ 30이 μ•„λ‹Œ, 30이 μ €μž₯λ˜μ–΄ μžˆλŠ” λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό κΈ°μ–΅ν•˜κ³  μžˆλ‹€. 

 

4.3 λ³€μˆ˜ μ„ μ–Έ

λ³€μˆ˜λ₯Ό μƒμ„±ν•˜λŠ” 것, λ©”λͺ¨λ¦¬ 곡간을 ν™•λ³΄ν•˜κ³  λ³€μˆ˜ 이름과 λ©”λͺ¨λ¦¬ κ³΅κ°„μ˜ μ£Όμ†Œλ₯Ό μ—°κ²°ν•΄μ„œ 값을 μ €μž₯ν•  수 있게 μ€€λΉ„ν•˜λŠ” 것이닀.

λ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ 선언이 ν•„μš”ν•˜κ³ , var,let,const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€. 

 

 var   (λ³€μˆ˜ μ„ μ–Έκ³Ό μ΄ˆκΈ°ν™” λ™μ‹œμ— μ§„ν–‰!)

 

var result

var ν‚€μ›Œλ“œλ‘œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•œ ν›„, 아직 λ³€μˆ˜μ— 값을 ν• λ‹Ήν•˜μ§€ μ•Šμ•˜λ‹€. 이 λ•Œ μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진에 μ˜ν•΄ undefined값이 ν• λ‹Ήλ˜μ–΄ μ΄ˆκΈ°ν™”λœλ‹€.

 

값을 ν• λ‹Ήν•˜μ§€ μ•Šμ€ μƒνƒœμ—μ„œ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜λ©΄ ReferenceError(μ°Έμ‘° μ—λŸ¬ - μ„ μ–Έν•˜μ§€ μ•Šμ€ μ‹λ³„μžμ— μ ‘κ·Όμ‹œ)κ°€ λ°œμƒν•œλ‹€.

varλŠ” μ΄ˆκΈ°ν™”λ˜μ–΄ μ΄λŸ¬ν•œ μœ„ν—˜μœΌλ‘œλΆ€ν„° μ•ˆμ „ν•˜λ‹€. 

 

4.4 λ³€μˆ˜ μ„ μ–Έμ˜ μ‹€ν–‰ μ‹œμ κ³Ό λ³€μˆ˜ ν˜Έμ΄μŠ€νŒ…

console.log(result); //undefined

var result;

λ³€μˆ˜ 선언문보닀 λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•˜λŠ” μ½”λ“œκ°€ μ•žμ— μžˆλŠ”λ° μ°Έμ‘° μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€. 

λ³€μˆ˜ 선언이 λŸ°νƒ€μž„ ν™˜κ²½μ΄ μ•„λ‹ˆλΌ κ·Έ 이전 λ‹¨κ³„μ—μ„œ λ¨Όμ € μ‹€ν–‰λ˜κΈ° λ•Œλ¬Έμ΄λ‹€. 

 

μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 μ†ŒμŠ€μ½”λ“œλ₯Ό ν•œ 쀄씩 μ‹€ν–‰ν•˜κΈ° 전에 λͺ¨λ“  선언문을 μ°Ύμ•„μ„œ λ¨Όμ € μ‹€ν–‰ν•œλ‹€. 이 과정이 λλ‚˜λ©΄ ν•œ 쀄씩 순차적으둜 μ‹€ν–‰ν•œλ‹€. λ”°λΌμ„œ λ³€μˆ˜ 선언이 어디에 μœ„μΉ˜ν•˜λ“ μ§€ λ³€μˆ˜λ₯Ό μ°Έμ‘°ν•  수 있고, 이 νŠΉμ§•μ„ λ³€μˆ˜ ν˜Έμ΄μŠ€νŒ…(var ν˜Έμ΄μŠ€νŒ…)이라고 ν•œλ‹€. 

 

4.5 κ°’μ˜ ν• λ‹Ή

 

1)
console.log(result); //undefined

var result; //λ³€μˆ˜ μ„ μ–Έ 
result = 80; //κ°’μ˜ ν• λ‹Ή 

console.log(result); //80

2)
console.log(result); //undefined

var result = 80; //λ³€μˆ˜μ˜ μ„ μ–Έ,ν• λ‹Ή 

console.log(result); //80

 

μ„ μ–Έκ³Ό 할당을 λ”°λ‘œν•΄λ„ ν•œ λ¬Έμž₯으둜 단좕해도 λ™μΌν•˜κ²Œ λ™μž‘ν•œλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진은 λ‹¨μΆ•ν•΄μ„œ μ‚¬μš©ν•΄λ„ μ„ μ–Έκ³Ό κ°’μ˜ 할당을 2개의 문으둜 λ‚˜λˆ„μ–΄ 각각 μ‹€ν–‰ν•˜κΈ° λ•Œλ¬Έμ— undefined μ΄ˆκΈ°ν™”λŠ” 변함 μ—†λ‹€.

 

값을 ν• λ‹Ήν•  λ•Œ undefinedκ°€ μ €μž₯λ˜μ–΄ 있던 λ©”λͺ¨λ¦¬ 곡간을 μ§€μš°κ³  값을 ν• λ‹Ήν•˜λŠ”κ²Œ μ•„λ‹ˆλΌ μƒˆλ‘œμš΄ 곡간을 ν™•λ³΄ν•˜μ—¬ 값을 μ €μž₯ν•œλ‹€! 

 

4.6 κ°’μ˜ μž¬ν• λ‹Ή

var result = 80;
result = 90;

console.log(result); //90

var ν‚€μ›Œλ“œλ‘œ μ„ μ–Έν•œ λ³€μˆ˜λŠ” 값을 μž¬ν• λ‹Ήν•  수 μžˆλ‹€. result λ³€μˆ˜λŠ” undefined -> 80 -> 90으둜 μž¬ν• λ‹Ήλ˜λŠ”λ° μ΄λ ‡κ²Œ 되면 

undefined와 80은 더 이상 ν•„μš”ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ κ°€λΉ„μ§€ μ½œλ ‰ν„°μ— μ˜ν•΄ λ©”λͺ¨λ¦¬μ—μ„œ μžλ™ ν•΄μ œλœλ‹€. 

 

(κ°€λΉ„μ§€ μ½œλ ‰ν„° - λ©”λͺ¨λ¦¬ 곡간을 주기적으둜 κ²€μ‚¬ν•˜μ—¬ 더 이상 μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” λ©”λͺ¨λ¦¬λ₯Ό ν•΄μ œν•˜λŠ” κΈ°λŠ₯)

 

4.7 μ‹λ³„μž 넀이밍 κ·œμΉ™

1. μ‹λ³„μžλŠ” 특수문자λ₯Ό μ œμ™Έν•œ 문자,숫자,μ–Έλ”μŠ€μ½”μ–΄(_),$λ₯Ό 포함할 수 μžˆλ‹€. 

2. 단, μ‹λ³„μžλŠ” 특수문자λ₯Ό μ œμ™Έν•œ 문자,μ–Έλ”μŠ€μ½”μ–΄(_),$둜 μ‹œμž‘ν•΄μ•Ό ν•œλ‹€. μˆ«μžλŠ” ν—ˆμš©x

3. μ˜ˆμ•½μ–΄λŠ” μ‹λ³„μžλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€. (ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ‚¬μš©λ˜κ³  μžˆκ±°λ‚˜ μ‚¬μš©λ  μ˜ˆμ •μΈ 단어)

 

λ°˜μ‘ν˜•