Tiny Bunny
λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’»/Javascript

[JS] μžλ°”μŠ€ν¬λ¦½νŠΈ λ³€μˆ˜μ™€ μƒμˆ˜- var, let, const

by soonybutter 2024. 1. 9.
728x90

 

​

 

 

κ°€μž₯ 기본이 λ˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ³€μˆ˜ 별 νŠΉμ§•κ³Ό μ‹λ³„μž λͺ…λͺ… κ·œμΉ™μ— λŒ€ν•΄ μ •λ¦¬ν•˜μž.

​

​

μ•”μ‹œμ μ„ μ–Έ

: μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ μ œκ³΅ν•˜λŠ” λ³€μˆ˜ μ„ μ–Έ ν‚€μ›Œλ“œμΈ var, let, const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  λ³€μˆ˜λ₯Ό 선언함.

μ•„λž˜μ™€ 같이 κ·Έλƒ₯ λ³€μˆ˜μ™€ 할당값을 선언해버린닀.

(μžλ°”μŠ€ν¬λ¦½νŠΈμ—μ„œ ꢌμž₯ν•˜λŠ” 방식은 μ•„λ‹˜.)

 

μ•”μ‹œμ  μ„ μ–Έ

λͺ…μ‹œμ μ„ μ–Έ

const, let, var ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ λ³€μˆ˜λ₯Ό 선언함.

 

λͺ…μ‹œμ  선언​

​


 

​

 λ³€μˆ˜

 

:λ³€ν•˜λŠ” 수

 

- λ³€μˆ˜μ˜ μ‹λ³„μžλ₯Ό μ§€μ •ν•˜λŠ” ν–‰μœ„ = 'λ³€μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€.' 라고 ν•œλ‹€.

- = μš°λ³€μ— μžˆλŠ” 값을 λ³€μˆ˜ 곡간에 λŒ€μž…ν•˜λŠ” 것 = '값을 ν• λ‹Ήν•œλ‹€.'

 

var num = 10 + 20 ; 

ν‚€μ›Œλ“œ μ‹λ³„μž μ—°μ‚°μž ν‘œν˜„μ‹ μ˜ˆμ‹œ

​

 

 

​

 λ³€μˆ˜μ„ μ–Έν‚€μ›Œλ“œ

 

자주 μ‚¬μš©λ˜λŠ” ν‚€μ›Œλ“œμ—λŠ” let , const , var κ°€ μžˆλ‹€.

각각의 ν‚€μ›Œλ“œλŠ” 각각 λ‹€λ₯Έ μœ νš¨λ²”μœ„μ™€ ν˜Έμ΄μŠ€νŒ…μ˜ νŠΉμ§•μ„ 가지기 λ•Œλ¬Έμ— ν‚€μ›Œλ“œ λ³„λ‘œ νŠΉμ§•μ„ λͺ…ν™•ν•˜κ²Œ μ΄ν•΄ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€.

 

 

λ¨Όμ € let ν‚€μ›Œλ“œλΆ€ν„° μ•Œμ•„λ³΄μž.

 

 

1. let

 

- λ³€μˆ˜μ˜ 쀑볡 μ„ μ–Έ λΆˆκ°€ (var ν‚€μ›Œλ“œλŠ” 쀑볡선언 κ°€λŠ₯)

- λ³€μˆ˜μ— ν• λ‹Ήλœ 데이터값을 λ³€κ²½ν•  수 있음.

- ν˜Έμ΄μŠ€νŒ… λ˜μ§€μ•ŠμŒ.

 

let은 쀑볡선언이 λΆˆκ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ—, μ½”λ“œλ₯Ό μ΄μš©ν•˜λŠ” 개발자의 μž…μž₯에선 μ•ˆμ •μ„±μžˆλŠ” λ³€μˆ˜μ„ μ–Έν‚€μ›Œλ“œμ΄λ‹€.

λ‹€μŒμ— varν‚€μ›Œλ“œλ₯Ό 정리할 λ•Œ μ–ΈκΈ‰ν•˜κ² μ§€λ§Œ, let ν‚€μ›Œλ“œμ™€ 달리 varν‚€μ›Œλ“œλŠ” 같은 λ³€μˆ˜ num을 κ³„μ†ν•΄μ„œ μ„ μ–Έν•  수 μžˆλ‹€.

ex) var num = 10 + 20;

var num = 50;

​

let을 쀑볡 μ„ μ–Έν•˜μž 였λ₯˜λœΈ

 

'ν˜Έμ΄μŠ€νŒ… λ˜μ§€ μ•ŠμŒ'

 

ν˜Έμ΄μŠ€νŒ…(hoisting)

: var ν‚€μ›Œλ“œλ‘œ λ³€μˆ˜ μ„ μ–Έν•˜κ³  ν• λ‹Ήν–ˆμ„ λ•Œ (어디에 μ„ μ–Έν–ˆλŠλƒμ— 상관없이 항상)

λ³€μˆ˜ 선언을 μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ μŠ€μ½”ν”„ 맨 μœ„λ‘œ 올렀 μ‹€ν–‰ν•˜λŠ” 것.

​


​

​ 2. var

 

- ​var ν‚€μ›Œλ“œλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 초창기 λ³€μˆ˜ μ„ μ–Έ ν‚€μ›Œλ“œμ΄λ‹€. 

- λ³€μˆ˜ 쀑볡 μ„ μ–Έ κ°€λŠ₯ (이미 같은 μ΄λ¦„μ˜ λ³€μˆ˜κ°€ μ„ μ–Έλ˜μ—ˆμ–΄λ„ λ‹€μ‹œ κ·Έ λ³€μˆ˜μ˜ 값을 μž¬ν• λ‹Ή ν•  수 있음.)

- λ”°λΌμ„œ λ‹€λ₯Έ κ°œλ°œμžλ“€κ³Ό ν˜‘μ—…ν•  λ•Œ 였λ₯˜κ°€ λ°œμƒν•  수 있음. . 

​


 

3. const

- μž¬ν• λ‹Ή μ•ˆλ˜λŠ” νŠΉμ§• λ•Œλ¬Έμ— μƒμˆ˜ λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ μ‚¬μš©ν•˜λŠ” ν‚€μ›Œλ“œλΌκ³ λ„ 함.

- λ³€μˆ˜μ˜ 쀑볡 μ„ μ–Έ λΆˆκ°€

- λ³€μˆ˜μ— ν• λ‹Ήλœ 데이터값 λ³€κ²½ λΆˆκ°€ (선언을 λ¨Όμ €ν•˜κ³  λ‚˜μ€‘μ— 해도 였λ₯˜λ‚¨.)

 

​

const 에 쀑볡 μ„ μ–Έν•˜μž 였λ₯˜λœ¬ λͺ¨μŠ΅

 

Q. κ·Έλ ‡λ‹€λ©΄ const ν‚€μ›Œλ“œμ™€ let ν‚€μ›Œλ“œλŠ” 쀑볡 선언이 λΆˆκ°€ν•œ ν‚€μ›Œλ“œλΌλŠ” μ μ—μ„œ 같은 ν‚€μ›Œλ“œμΌκΉŒ?

A. μ•„λ‹ˆλ‹€. 

 

+ A. 기쑴에 λ³€μˆ˜λ₯Ό μ„ μ–Έν•˜κ³ , ν•΄λ‹Ή λ³€μˆ˜μ— λ‹€λ₯Έ 데이터값을 μž¬ν• λ‹Ή ν•  수 μžˆλŠ” letκ³Ό 달리,

const ν‚€μ›Œλ“œλŠ” μƒμˆ˜ λ³€μˆ˜μ—λŠ” ν• λ‹Ήν•  수 μ—†λ‹€λŠ” μ—λŸ¬κ°€ λœ¬λ‹€.

letν‚€μ›Œλ“œ μ˜ˆμ‹œ
쀑볡 μ„ μ–Έ κ°€λŠ₯ν•œ let (λ‹€λ₯Έ 데이터값을 μž¬ν• λ‹Ή γ…‡)

 

 

​


​

​

μ‹λ³„μž λͺ…λͺ…κ·œμΉ™

 

1. 카멜 μΌ€μ΄μŠ€(camelcase)

- λ‹¨μ–΄μ˜ 첫 κΈ€μžλŠ” μ†Œλ¬Έμž, μ—°κ²°λœ λ‹¨μ–΄μ˜ 첫 κΈ€μžλŠ” λŒ€λ¬Έμžλ‘œ μž‘μ„±ν•¨.

ex) firstName, lastName

​

2. λ³€μˆ˜ 이름

- 숫자둜 μ‹œμž‘ ( x )

_ , $ , 문자둜만 μ‹œμž‘ν•¨ ( γ…‡ )

​

3. μƒμˆ˜λ‚˜ μΆ•μ•½μ–΄λŠ” λŒ€λ¬Έμžμ™€ μŠ€λ„€μ΄ν¬ λ°©μ‹μœΌλ‘œ μž‘μ„±ν•¨

- μŠ€λ„€μ΄ν¬ 방식 : _ μ–Έλ”λ°”λ‘œ μ—°κ²°

ex) const HTML = "Hyper Text Markup Language";

const MAX_LEVEL = "99";

​

4. λͺ‡λͺ‡ μ‹λ³„μžλŠ” μ˜ˆμ•½μ–΄μ—¬μ„œ λ³€μˆ˜λ‚˜ ν•¨μˆ˜ μ΄λ¦„μœΌλ‘œ μ‚¬μš©ν•  수 μ—†λ‹€.

- var, let, const, typeof, name, class, extends, import, super λ“±λ“±...

​

ex) Const var = 10; ( x )

​

abstract arguments boolean break byte case catch char class*

const continue debugger default delete do double else enum*

eval export* extends* false final finally float for function goto

if implements import* in instanceof int interface let long native

new null package private protected public return short static super*

switch synchronized this throw throws transient true try typeof var

void volatile while with yield

: // *λŠ” ES6μ—μ„œ μΆ”κ°€λœ μ˜ˆμ•½μ–΄

​

​

​

​

​

​

728x90

TOP

Designed by ν‹°μŠ€ν† λ¦¬