potatos
𝕝𝕒𝕦𝕣𝕦𝕀
potatos
전체 방문자
였늘
μ–΄μ œ
  • λΆ„λ₯˜ 전체보기
    • Daily
    • Study
      • CS
      • Network
      • Windows
      • Linux
      • HTML & CSS
      • JavaScript
      • React
      • vue.js
      • Flutter
      • DataBase
      • Elastic Se..
      • Log
      • Coding Tes..
    • Work
      • PC
      • Mobile
      • JPGIF

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

  • notice

인기 κΈ€

νƒœκ·Έ

  • Linux
  • 수직 μ •λ ¬
  • JavaScript
  • Windows
  • μ…€λ ‰ν„°
  • MySQL
  • CSS
  • μœˆλ„μš°
  • HTML
  • μžλ°”μŠ€ν¬λ¦½νŠΈ

졜근 λŒ“κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
potatos

𝕝𝕒𝕦𝕣𝕦𝕀

Study/JavaScript

[JavaScript] λ³€μˆ˜μ˜ μœ νš¨μ„± λ²”μœ„ (λ³€μˆ˜μ˜ μŠ€μ½”ν”„)

2022. 4. 24. 21:50

λ³€μˆ˜μ˜ μœ νš¨μ„± λ²”μœ„ (λ³€μˆ˜μ˜ μŠ€μ½”ν”„)

JavaScriptμ—μ„œ κ°μ²΄λ‚˜ ν•¨μˆ˜λŠ” λͺ¨λ‘ λ³€μˆ˜λΌ μΉ­ν•˜λ©°, ν•΄λ‹Ή λ³€μˆ˜κ°€ μ ‘κ·Όν•  수 μžˆλŠ” λ³€μˆ˜, 객체, ν•¨μˆ˜μ˜ 집합을 λ³€μˆ˜μ˜ μœ νš¨μ„± λ²”μœ„ (λ³€μˆ˜μ˜ μŠ€μ½”ν”„)라고 λΆ€λ₯Έλ‹€. λ³€μˆ˜μ˜ μœ νš¨μ„± λ²”μœ„μ— 따라 μ§€μ—­ λ³€μˆ˜μ™€ μ „μ—­ λ³€μˆ˜λ‘œ λ‚˜λ‰˜κ²Œ λœλ‹€.
μ „μ—­ λ³€μˆ˜λŠ” μ „μ—­ μŠ€μ½”ν”„μ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜μΈλ°, μ „μ—­ μŠ€μ½”ν”„λž€ κ°€μž₯ λ°”κΉ₯μͺ½μ˜ μŠ€μ½”ν”„λ₯Ό λœ»ν•œλ‹€. λ°˜λŒ€λ‘œ μ§€μ—­ λ³€μˆ˜λŠ” μ§€μ—­ μŠ€μ½”ν”„μ—μ„œ μ„ μ–Έν•œ λ³€μˆ˜μ΄λ©°, 전역이 μ•„λ‹Œ λ‹€λ₯Έ μŠ€μ½”ν”„λŠ” λͺ¨λ“œ μ§€μ—­ μŠ€μ½”ν”„λΌκ³  λΆ€λ₯Έλ‹€.
μ§€μ—­ λ³€μˆ˜λŠ” μ „μ—­ λ³€μˆ˜λ³΄λ‹€ 더 높은 μš°μ„  μˆœμœ„λ₯Ό κ°€μ§€κ²Œ λœλ‹€.

μŠ€μ½”ν”„μ˜ μ£Όμš” κ·œμΉ™

  1. μ•ˆμͺ½ μŠ€μ½”ν”„μ—μ„œ λ°”κΉ₯μͺ½ μŠ€μ½”ν”„λ‘œλŠ” 접근이 κ°€λŠ₯ν•˜μ§€λ§Œ λ°˜λŒ€λŠ” λΆˆκ°€λŠ₯ν•˜λ‹€.
    1. λ°”κΉ₯μͺ½ μŠ€μ½”ν”„μ—μ„œ μ„ μ–Έν•œ μ‹λ³„μžλŠ” μ•ˆμͺ½ μŠ€μ½”ν”„μ—μ„œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜λ‹€.
    2. μ•ˆμͺ½ μŠ€μ½”ν”„μ—μ„œ μ„ μ–Έν•œ μ‹λ³„μžλŠ” λ°”κΉ₯μͺ½ μŠ€μ½”ν”„μ—μ„œ μ‚¬μš©μ΄ λΆˆκ°€λŠ₯ν•˜λ‹€.
  2. μŠ€μ½”ν”„λŠ” 쀑첩이 κ°€λŠ₯ν•˜λ‹€.

var ν‚€μ›Œλ“œλ‘œ μ„ μ–Έλœ λ³€μˆ˜μ˜ 경우

블둝{} μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λŠ” λΈ”λ‘μ˜ μ‹€ν–‰ 여뢀에 따라 블둝 λ°–μ—μ„œμ˜ 식별 μ—¬λΆ€κ°€ κ²°μ •λ˜λ©°, 블둝을 κ°–λŠ” 뢀뢄이 μ‹€ν–‰λ˜μ§€ μ•Šμ„ κ²½μš°μ—λŠ” 블둝 μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λ₯Ό 블둝 λ°–μ—μ„œ μ‚¬μš©ν•  λ•Œ ν• λ‹Ήλ˜μ§€ μ•Šμ€ undefinedκ°€ λœλ‹€.

1. 쑰건문이 μ‹€ν–‰λ˜μ§€ μ•ŠλŠ” 경우

if문의 μ‹€ν–‰ 여뢀에 따라 num1이 μ„ μ–Έλ˜λ©°, num1의 식별 κ°€λŠ₯ μ—¬λΆ€κ°€ κ²°μ •λœλ‹€. num1을 μ‹λ³„ν•˜μ§€ λͺ» ν•  경우, μ •μ˜λ˜μ§€ μ•Šμ€ κ°’(undefined)κ°€ λœλ‹€.
if (false) {
    var num1 = 100;
    console.log("λΈ”λ‘μ•ˆ: " + num1);
}

console.log("블둝밖: " + num1);

/** κ²°κ³Ό **/
블둝밖: undefined

2. 쑰건문이 μ‹€ν–‰λ˜λŠ” 경우

if (true) {
    var num2 = 100;
    console.log("λΈ”λ‘μ•ˆ: " + num2);
}

console.log("블둝밖: " + num2);

/** κ²°κ³Ό **/
λΈ”λ‘μ•ˆ: 100
블둝밖: 100

let ν‚€μ›Œλ“œλ‘œ μ„ μ–Έλœ λ³€μˆ˜μ™€ const ν‚€μ›Œλ“œλ‘œ μ„ μ–Έλœ μƒμˆ˜μ˜ 경우

블둝 λ°–μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λŠ” 블둝 μ•ˆμœΌλ‘œ μΉ¨νˆ¬κ°€ κ°€λŠ₯ν•˜λ©°, 블둝 μ•ˆμ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λŠ” 블둝을 λΉ μ Έλ‚˜μ˜¬ 수 μ—†λ‹€.
λ³€μˆ˜μ˜ λ²”μœ„κ°€ 블둝 μ•ˆμœΌλ‘œ ν•œμ •λ˜λ―€λ‘œ μ„œλ‘œ λ‹€λ₯Έ λΈ”λ‘λΌλ¦¬λŠ” 쀑볡 선언이 κ°€λŠ₯ν•˜λ‹€.
let num3 = 100;
if (true) {
    //블둝 λ°–μ—μ„œ μƒμ„±λœ λ³€μˆ˜λ₯Ό 블둝 μ•ˆμ—μ„œ μ‚¬μš© κ°€λŠ₯
    let num4 = num3 + 100;
    console.log("λΈ”λ‘μ•ˆ: " + num4);
}

// let으둜 μ„ μ–Έλœ λ³€μˆ˜λŠ” if문의 μ‹€ν–‰ 여뢀와 상관 없이 블둝을 λΉ μ Έλ‚˜μ˜¬ 수 μ—†μŒ --> ν”„λ‘œκ·Έλž¨ μ—λŸ¬
console.log("블둝밖: " + num4);


/** κ²°κ³Ό **/
λΈ”λ‘μ•ˆ: 200

console.log("블둝밖: " + num4);
                      ^

ReferenceError: num4 is not defined

for문의 μ΄ˆκΈ°μ‹μ— λŒ€ν•œ μœ νš¨μ„± λ²”μœ„

var ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œ κ²½μš°μ—λŠ” μ΄ˆκΈ°μ‹μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜κ°€ forλ¬Έ λ°–μ—μ„œ 식별 κ°€λŠ₯ν•˜μ§€λ§Œ, let ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œ κ²½μš°μ—λŠ” μ΄ˆκΈ°μ‹μ—μ„œ μ„ μ–Έλœ λ³€μˆ˜λŠ” 식별이 λΆˆκ°€λŠ₯ν•˜λ‹€.

1. for문의 μ΄ˆκΈ°μ‹μœΌλ‘œ varλ₯Ό μ„ μ–Έν•œ 경우

for (var i=0; i<10; i++) {
    console.log("반볡문 μ•ˆ ::: " + i);
}
console.log("반볡문 λ°– >>> " + i);


/** κ²°κ³Ό **/
반볡문 μ•ˆ ::: 0
반볡문 μ•ˆ ::: 1
반볡문 μ•ˆ ::: 2
반볡문 μ•ˆ ::: 3
반볡문 μ•ˆ ::: 4
반볡문 μ•ˆ ::: 5
반볡문 μ•ˆ ::: 6
반볡문 μ•ˆ ::: 7
반볡문 μ•ˆ ::: 8
반볡문 μ•ˆ ::: 9
반볡문 λ°– >>> 10

2. for문의 μ΄ˆκΈ°μ‹μ„ let으둜 μ„ μ–Έν•œ 경우

for (let j=0; j<10; j++) {
    console.log("반볡문 μ•ˆ ::: " + j);
}

// for문의 μ΄ˆκΈ°μ‹λ„ {}에 μ†ν•œ κ²ƒμœΌλ‘œ 보기 λ•Œλ¬Έμ— j값은 for 블둝을 λΉ μ Έλ‚˜μ˜¬ 수 μ—†μŒ
console.log("반볡문 λ°– >>> " + j);


/** κ²°κ³Ό **/
반볡문 μ•ˆ ::: 0
반볡문 μ•ˆ ::: 1
반볡문 μ•ˆ ::: 2
반볡문 μ•ˆ ::: 3
반볡문 μ•ˆ ::: 4
반볡문 μ•ˆ ::: 5
반볡문 μ•ˆ ::: 6
반볡문 μ•ˆ ::: 7
반볡문 μ•ˆ ::: 8
반볡문 μ•ˆ ::: 9
console.log("반볡문 λ°– >>> " + j);
                           ^

ReferenceError: j is not defined

μ„ μ–Έλ˜μ§€ μ•Šμ€ λ³€μˆ˜μ˜ 경우

let ν‚€μ›Œλ“œλŠ” λ°˜λ“œμ‹œ 'μ„ μ–Έ -> ν• λ‹Ή'의 μˆœμ„œλ‘œλ§Œ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜μ§€λ§Œ, var ν‚€μ›Œλ“œλŠ” ν• λ‹Ή 후에 선언이 κ°€λŠ₯ν•˜λ‹€.
/** let ν‚€μ›Œλ“œ **/
x = 100; //ν• λ‹Ή
let x; //μ„ μ–Έ
console.log(x);

/** var ν‚€μ›Œλ“œ **/
y = 200;
var y;
console.log(y);


/** κ²°κ³Ό **/
x = 100; //ν• λ‹Ή
  ^

ReferenceError: Cannot access 'x' before initialization

200

 

 

μ°Έκ³ 

https://okayoon.tistory.com/entry/%EC%8A%A4%EC%BD%94%ED%94%84Scope%EB%9E%80

https://hanamon.kr/javascript-%EC%8A%A4%EC%BD%94%ED%94%84%EC%99%80-%EB%B3%80%EC%88%98%EC%84%A0%EC%96%B8%ED%82%A4%EC%9B%8C%EB%93%9C-%EC%B0%A8%EC%9D%B4%EC%A0%90/

'Study > JavaScript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JavaScript] λ°°μ—΄  (0) 2022.04.29
[JavaScript] κΈ°λ³Έ 문법 ν™œμš©  (0) 2022.04.24
[JavaScript] 반볡문  (0) 2022.04.24
[JavaScript] 쑰건문  (0) 2022.04.23
[JavaScript] μ—°μ‚°μž(operator)  (0) 2022.04.23
    'Study/JavaScript' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [JavaScript] λ°°μ—΄
    • [JavaScript] κΈ°λ³Έ 문법 ν™œμš©
    • [JavaScript] 반볡문
    • [JavaScript] 쑰건문
    potatos
    potatos

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”