변수

김승훈·2020년 5월 11일
0

JavaScript

목록 보기
2/16

변수

변수 선언 방식

  • var
var name = 'shin';
console.log(name); // shin

var name = 'lee';
console.log(name) // lee

변수를 한번 더 선언했지만, 에러가 나지 않고 각기 다른 값이 출력됨.

코드량이 많아질 경우에, 어디에서 사용되는지 알기 어렵고, 어디서 사용되는지 파악이 어려움.


- ECMA6

  • let
let name = 'shin';
console.log(name); // shin

let name = 'lee';
console.log(name);
//Uncaught SyntaxError : Identifier 'name' has alredy been declared

name이 이미 선언되어있다는 에러 메시지가 나옴(const도 동일)

변수 재선언이 되지 않음.

  • const

let과 const의 차이점은, 변수 재선언, 재할당의 차이이다.

const는 변수 재선언, 변수 재할당 모두 불가능하지만, let은 변수 재할당이 가능함.


호이스팅

자바스크립트의 함수가 실생되기 전에 함수 안에 필요한 변수값을들을 모두 모아서 유효 범위의 최상단에 선언하는 것.

  1. 자바스크립트의 Parser가 함수 실행 전 해당 함수를 하번 훑는다.
  2. 함수 안에 존재하는 변수/함수선언에 대한 정보를 기억하고 있다가 실행
  3. 유효범위 : 함수블록

호이스팅의 대상

  • var변수 선언과 함수선언문에서만 호이스팅이 일어남.

var 변수/함수의 선언만 위로 끌어올려지며, 할당은 끌어올려지지 않음.

let, count 변수 선언과 함수표현식에서는 호이스팅이 발생하지 않음.

호이스팅의 우선순위

  1. 같은 이름의 var 변수 선언과 함수 선언에서의 호이스팅

    • 변수 선언이 함수 선언보다 위로 끌어올려짐.

    함수와 변수를 가급적 코드의 상단부에서 선언하여 호이이스팅으로 인한 스코프 꼬임 현상을 방지해야 함.
    let / contst를 사용 권장

0개의 댓글