var 키워드

  • 로컬 변수, 글로벌 변수

  • scope, 자신의 영역에서만 사용, 공용에 따른 문제방지

글로벌 오프젝트도 scope

var 키워드로 변수 선언이 정상

글로벌 scope 속하는 변수로 선언

편리를 위해 작성하지 않는 것

Use strict

ES5에서 사용

  • 함수 안에서 글로벌 변수 선언 방지 - 근본적인 접근은 아님

ES6

  • Use strict 가 디폴트 환경

  • 전체는 아님

  • Node.js 에서 ES6 사용

    • Use strict 사용

let 변수

  • var 문제 해결

  • let sports = “스포츠"

    • 스코프를 가진 변수 선언
  • 스코프 범위

    • 블록{},문장,표현식
  • 블록안의 블록도 스코프

    • 블록마다 스코프가 다름

    • 각 블록마다 변수 값 유지

  • let 변수는 호이스팅(hosting) 되지 않음


let 변수 작성방법

Syntax: name1[=value1][,name2[=value12]]
  • name1, name2에 변수이름작성

  • 식별자로 사용

  • Value1, value2에 초기값작성

  • 표현식 작성가능, 평가결과사용

  • 값을 할당하지 않고 변수 선언만 가능

  • Temporal dead zone

  • 같은 스코프안에 같은 변수 사용불가


tip! 자바스크립트에서는 값을 할당하지 않고 변수만 선언시 초기값은 undefined(자바스크립트에서 undefined 는 값)

블록 스코프

  • Let 키워드의 가장큰 목적

  • 블록{} 형태

let과 this

  • 글로벌 오프젝트에서 this로 let변수 참조 불가

  • this가 window오브젝트 참조


let과 function

  • function(){}도 블록 스코프

  • function 안과 밖에

    • 같은 이름의 let 변수 선언 가능

    • 스코프가 다르기 때문

  • function 밖의 let 변수들

  • function 안에 선언하지 않아도

  • function 안에서 사용가능

  • var 과같은 개념으로 사용

try-catch

  • try-catch도 블록 스코프

switch-case

  • switch-case 도 블록스코프

  • case는 해당되지 않음


호이스팅

  • 실행하는 코드의 아래코드 참조

  • 함수 선언문, 함수 표현식, var 변수

  • let 변수는 호이스팅되지 않음

    • let 변수 앞에서 변수 사용 불가

for()

  • for() 문을 반복할때마다 스코프를 가짐

const

  • 구문 : const name1[=value][,name2[=value2]]]

  • Name1에 변수 이름 작성, 식별자로 사용

    • Value1에 초기값 작성

    • 반드시 값 할당, 변수만 선언 불가

  • 표현식 작성가능, 평가 결과 사용

  • 값을 바꿀 수 없는 변수 선언

    • Javascript 에는 상수는 대문자 사용이 관례

    • Const 변수는 소문자를 사용하기도 함

  • Let 키워드와 기능은 같음

results matching ""

    No results matching ""