항해99 3기 스터디 2조 2회 (Javascript 문법_변수)

CH_Hwang·2021년 7월 17일
0

1. 변수 선언

- var(function scope)

var i;  // 선언, "undefined"가 저장됨
var sum = 0;  // 선언과 초기화
var i, sum; // 한 번에 여러 개의 변수를 함께 선언할 수 있음
var i=0, sum=10, message=”Hello”;  // 선언과 초기화를 동시에 해줄 수 있음
name = "javascript";  // 선언되지 않은 변수는 전역 변수가 됨

var는 아래와 같은 문제가 있다.

  • 함수레벨 스코프로 동작 (전역 변수의 남발 및 코드 복잡도 증가)
  • 변수 선언시 var 키워드 생략 허용 (변수의 의도하지 않은 전역화)
  • 중복 선언 허용 (변수의 의도하지 않은 값 변경)
  • 변수 호이스팅 (변수 선언 이전에 참조 가능)
    (출처: https://freestrokes.tistory.com/101 [FREESTROKES DEVLOG])
console.log(x);
var x;
//호이스팅 후
var x;
console.log(x);
//선언과 동시에 대입되는 수는 호이스팅 되지 않음
console.log(x);// undefined
var x = 5;
console.log(x);// 5
//아래와 같다고 볼 수 있음
var x;
console.log(x);// undefined
var = 5;
console.log(x);// 5

- let(block scope)

let i;  // 선언, "undefined"가 저장됨
let sum = 0;  // 선언과 초기화
let i, sum; // 한 번에 여러 개의 변수를 함께 선언할 수 있음
let i=0, sum=10, message=”Hello”;  // 선언과 초기화를 동시에 해줄 수 있음

let은 변수가 선언된 블록, 구문 또는 표현식 내에서만 유효한 변수를 선언한다.

중복선언이 불가능하며 수정이 가능하다.
var에 비해 코드의 안정성을 높힐 수 있다.

- const(block scope)

const MY_NUM = 7;

블록범위에서 상수를 선언한다.
let이 수정이 가능한 반면 const는 수정이 불가능하다.

0개의 댓글