Mathlife
Mathlife의 학습 노트
Mathlife
전체 방문자
오늘
어제
  • 분류 전체보기
    • CS
      • 알고리즘
      • 자료구조
      • 운영체제
      • 네트워크
      • 데이터베이스
    • 프로그래밍 언어
      • Java
      • JavaScript
      • C·C++
      • Python
    • Backend
      • Spring
    • Frontend
      • HTML
      • CSS
    • Math
      • Linear Algebra
      • Calculus
    • AI
      • ML
      • DL
      • RL
    • Git

블로그 메뉴

  • 홈
  • 관리
  • 글쓰기
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Mathlife

Mathlife의 학습 노트

var vs let
프로그래밍 언어/JavaScript

var vs let

2022. 7. 17. 13:34

I. Scope

- var : function scope

- let : block scope

 

Example

{
    var a = 1;
    let b = 1;
}
document.write(a); // O
document.write(b); // X

 

Example

i : global variable

var funcs = [];

for (var i = 0; i < 3; i++){
    funcs[i] = function(){
        document.write(i + "<br>");
    }
}

for (var j = 0; j < 3; j++){
    funcs[j]();
}

 

i : (for loop block's) local variable

let funcs = [];

for (let i = 0; i < 3; i++){
    funcs[i] = function(){
        document.write(i + "<br>");
    }
}

for (let j = 0; j < 3; j++){
    funcs[j]();
}

 

II. Hoisting (인터프리터가 변수와 함수의 메모리 공간을 미리 할당하는 것)

- var, let 모두 hoisting은 한다

- var : undefined로 초기화

- let : 초기화하지 않음

 

Example

document.write(a + "<br>"); // undefined
var a = 1;

document.write(b + "<br>"); // ReferenceError
let b = 1;

 

III. Redeclaration

- var : 재선언 가능

- let : 재선언 불가능

 

Example

var x = 1;
var x = 2; // Work!
let y = 1;
let y = 2; // SyntaxError

 

Reference

https://stackoverflow.com/questions/762011/what-is-the-difference-between-let-and-var

'프로그래밍 언어 > JavaScript' 카테고리의 다른 글

Prototype  (0) 2022.06.04
    '프로그래밍 언어/JavaScript' 카테고리의 다른 글
    • Prototype
    Mathlife
    Mathlife

    티스토리툴바