[js] λ³€μˆ˜

λΉ„νŠΈΒ·2023λ…„ 4μ›” 16일
0

JavaScript

λͺ©λ‘ 보기
3/22
post-thumbnail
post-custom-banner

1. λ³€μˆ˜ (Variable)

πŸ”₯λ³€μˆ˜λž€ 무엇인가? μ™œ ν•„μš”ν•œκ°€?

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ 데이터λ₯Ό 닀룬닀. 아무리 λ³΅μž‘ν•œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄λΌ 해도 ν…Œμ΄ν„°λ₯Ό μž…λ ₯λ°›μ•„ μ²˜λ¦¬ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό 좜λ ₯ν•˜λŠ” 것이 전뢀이닀.
    λ³€μˆ˜λŠ” ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ 데이터λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 핡심 κ°œλ…μ΄λ‹€.
    λ³€μˆ˜λž€ 무엇인지 그리고 μ™œ ν•„μš”ν•œμ§€ μ‚΄νŽ΄λ³΄μž.
  • βš‘λ³€μˆ˜
    • κ°’μ˜ μœ„μΉ˜λ₯Ό κ°€λ¦¬ν‚€λŠ” 상징적인 이름.
    • ν•˜λ‚˜μ˜ 값을 μ €μž₯ν•˜κΈ° μœ„ν•΄ ν™•λ³΄ν•œ λ©”λͺ¨λ¦¬ 곡간 자체.
    • κ·Έ λ©”λͺ¨λ¦¬ 곡간을 μ‹λ³„ν•˜κΈ° μœ„ν•΄ 뢙인 이름.

1-1. μ‹λ³„μž

  • βš‘μ‹λ³„μž

    • μ–΄λ–€ 값을 κ΅¬λ³„ν•΄μ„œ 식별할 수 μžˆλŠ” κ³ μœ ν•œ 이름.
    • μ‹λ³„μžλŠ” 값이 μ•„λ‹ˆλΌ λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό κΈ°μ–΅ν•˜κ³  μžˆλ‹€.


2. λ³€μˆ˜ μ„ μ–Έ

  • βš‘λ³€μˆ˜ μ„ μ–Έ
    • λ³€μˆ˜λ₯Ό μƒμ„±ν•˜λŠ” 것.
    • ν‚€μ›Œλ“œ : var, let, const
    • ν•˜λ‚˜μ˜ λ³€μˆ˜κ°€ 자리 μž‘λŠ” λ™μž‘.
//λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•ŒλŠ” var, let, const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.

var A;
let B;
const C;
  • βš‘ν‚€μ›Œλ“œ
    • μžλ°”μŠ€ν¬λ¦½νŠΈ μ½”λ“œλ₯Ό ν•΄μ„ν•˜κ³  μ‹€ν–‰ν•˜λŠ” μžλ°”μŠ€ν¬λ¦½νŠΈ 엔진이 μˆ˜ν–‰ν•  λ™μž‘μ„ κ·œμ •ν•œ μΌμ •μ˜ λͺ…λ Ήμ–΄.

2-1. var ν‚€μ›Œλ“œ

πŸ”₯였래된 var

κ³Όκ±°μ—” var만 μ‚¬μš©. ES6μ—μ„œ letκ³Ό const ν‚€μ›Œλ“œλ₯Ό λ„μž…ν•œ μ΄μœ λŠ” var ν‚€μ›Œλ“œμ˜ μ—¬λŸ¬κ°€μ§€ 단점을 λ³΄μ™„ν•˜κΈ° μœ„ν•΄μ„œμ΄λ‹€.
λ”°λΌμ„œ, letκ³Ό const ν‚€μ›Œλ“œκ°€ λ„μž…λœ 이유λ₯Ό μ •ν™•νžˆ νŒŒμ•…ν•˜λ €λ©΄ λ¨Όμ € var ν‚€μ›Œλ“œμ˜ 단점뢀터 μ •ν™•νžˆ μ΄ν•΄ν•΄λ³΄μž.

  • λΈ”λ‘μŠ€μ½”ν”„κ°€ μ—†λ‹€.

    • var둜 μ„ μ–Έν•œ λ³€μˆ˜μ˜ μŠ€μ½”ν”„λŠ” ν•¨μˆ˜ μŠ€μ½”ν”„μ΄κ±°λ‚˜ μ „μ—­ μŠ€μ½”ν”„μ΄λ‹€.
    • 블둝 κΈ°μ€€μœΌλ‘œ μŠ€μ½”ν”„κ°€ 생기지 μ•ŠκΈ° λ•Œλ¬Έμ— 블둝 λ°–μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•˜λ‹€.

  • varλŠ” λ³€μˆ˜μ˜ 쀑볡 선언을 ν—ˆμš©ν•œλ‹€.

    • ν•œ μŠ€μ½”ν”„μ—μ„œ 같은 λ³€μˆ˜λ₯Ό let으둜 두 번 μ„ μ–Έν•˜λ©΄ μ—λŸ¬κ°€ λ°œμƒλœλ‹€.
    • ν•˜μ§€λ§Œ var둜 같은 λ³€μˆ˜λ₯Ό μ—¬λŸ¬ 번 μ€‘λ³΅μœΌλ‘œ μ„ μ–Έν•  수 μžˆλ‹€.
      - λŒ€μ‹  λ§ˆμ§€λ§‰μœΌλ‘œ μ„ μ–Έλœ 값이 좜λ ₯.

  • μ„ μ–Έν•˜κΈ° μ „ μ‚¬μš©ν•  수 μžˆλŠ” var

    • μ „μ—­μ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜λΌλ©΄ μŠ€ν¬λ¦½νŠΈκ°€ μ‹œμž‘λ  λ•Œ μ²˜λ¦¬λ˜μ§€λ§Œ, var 선언은 ν•¨μˆ˜κ°€ μ‹œμž‘λ  λ•Œ μ²˜λ¦¬λœλ‹€.
    • ν•¨μˆ˜ λ³Έλ¬Έ λ‚΄μ—μ„œ var둜 μ„ μ–Έν•œ λ³€μˆ˜λŠ” μ„ μ–Έ μœ„μΉ˜μ™€ 상관없이 ν•¨μˆ˜ 본문이 μ‹œμž‘λ˜λŠ” μ§€μ μ—μ„œ μ •μ˜(단, λ³€μˆ˜κ°€ 쀑첩 ν•¨μˆ˜ λ‚΄μ—μ„œ μ •μ˜λ˜μ§€ μ•Šμ•„μ•Ό 이 κ·œμΉ™μ΄ μ μš©λœλ‹€).
    • ν˜Έμ΄μŠ€νŒ… : λ³€μˆ˜κ°€ λŒμ–΄μ˜¬λ € μ§€λŠ” ν˜„μƒ.
    • var둜 μ„ μ–Έν•œ λͺ¨λ“  λ³€μˆ˜λŠ” ν•¨μˆ˜μ˜ μ΅œμƒμœ„λ‘œ β€˜λŒμ–΄ μ˜¬λ €μ§€κΈ°(hoisted)’ λ•Œλ¬Έ.


3. κ°’μ˜ ν• λ‹Ή

  • βš‘κ°’μ˜ ν• λ‹Ή
    • λ³€μˆ˜μ˜ 값을 ν• λ‹Ή (λŒ€μž…, μ €μž₯)λž‘ λ•ŒλŠ” ν• λ‹Ή μ—°μ‚°μž =λ₯Ό μ‚¬μš©ν•œλ‹€.
var score; //λ³€μˆ˜ μ„ μ–Έ
score = 80; //κ°’μ˜ ν• λ‹Ή

//λ³€μˆ˜ μ„ μ–Έκ³Ό κ°’μ˜ 할당을 ν•˜λ‚˜μ˜ 문으둜 단좕 ν‘œν˜„ ν•  수 μžˆλ‹€.

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


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

  • βš‘κ°’μ˜ μž¬ν• λ‹Ή
    • 이미 값이 ν• λ‹Ήλ˜μ–΄ μžˆλŠ” λ³€μˆ˜μ— μƒˆλ‘œμš΄ 값을 λ˜λ‹€μ‹œ ν• λ‹Ήν•˜λŠ” 것.
var score = 80; //λ³€μˆ˜ μ„ μ–Έκ³Ό κ°’μ˜ ν• λ‹Ή
score = 90; //κ°’μ˜ μž¬ν• λ‹Ή
  • var, let ν‚€μ›Œλ“œλ‘œ μ„ μ–Έν•œ λ³€μˆ˜λŠ” 값을 μž¬ν• λ‹Ήν•  수 μžˆλ‹€.
  • μž¬ν• λ‹Ήμ€ ν˜„μž¬ λ³€μˆ˜μ— μ €μž₯된 값을 버리고 μƒˆλ‘œμš΄ 값을 μ €μž₯ν•˜λŠ” 것이닀.

4-1. const ν‚€μ›Œλ“œ

  • 값을 μž¬ν• λ‹Ήν•  수 μ—†μ–΄μ„œ λ³€μˆ˜μ— μ €μž₯된 값을 λ³€κ²½ν•  수 μ—†λ‹€λ©΄ λ³€μˆ˜κ°€ μ•„λ‹ˆλΌ μƒμˆ˜(Constant)라 ν•œλ‹€.
  • ES6μ—μ„œ λ„μž…λœ const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•΄ μ„ μ–Έν•œ λ³€μˆ˜λŠ” μž¬ν• λ‹Ήμ΄ κΈˆμ§€λœλ‹€.
    -const ν‚€μ›Œλ“œλŠ” 단 ν•œ 번만 ν• λ‹Ήν•  수 μžˆλŠ” λ³€μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€.
  • λ”°λΌμ„œ const ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λ©΄ μƒμˆ˜λ₯Ό ν‘œν˜„ν•  수 μžˆλ‹€.


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

//1.카멜 μΌ€μ΄μŠ€(camelCase)
let firstName;

//2.μŠ€λ„€μ΄ν¬ μΌ€μ΄μŠ€(snake_case)
let first_name;

//3.νŒŒμŠ€μΉΌμΌ€μ΄μŠ€(PascalCase)
let FirstName;

//4.ν—κ°€λ¦¬μ–ΈμΌ€μ΄μŠ€(typeHungarianCase)
let strFistName; // type + identifier
let $elem = document.getElementById('myId'); // DOM λ…Έλ“œ
let observable$ = fromEvent(document, 'click'); //RxJS μ˜΅μ €λ²„λΈ”
profile
Drop the Bit!
post-custom-banner

0개의 λŒ“κΈ€