* ES6이전에는 var키워드만 사용할 수 있었음
*ES6에 새로 생긴 변수
let / const
JavaScript 선언에는 3가지 방법
var
: 변수를 선언. 추가로 동시에 값을 초기화
: 호이스팅 발생 주의
let
: 블록 범위 (scope) 지역 변수를 선언.
: 추가로 동시에 값을 초기화
const
: 블록 범위 읽기 전용 상수를 선언
변수
: 어플리케이션에서 값에 상징적인 이름으로 변수를 사용함.
: 변수명은 식별자(identifier)라고 불리며 특정 규칙을 따름
: JavaScript 식별자는 문자, 밑줄(_)혹은 달러 기호($)로 시작해야 함
: 대소문자를 구분함
: 변수명으로 적정한 예시
ex) Number_hits, temp99, $credit, __name 등
변수 할당
: var , let 문은 초기값을 지정하지 않아도 됨 ( 지정 안하였을 시, undefined 값으로 할당 됨 )
ex)
var a;
console.log("a 값은" + a); // "a 값은 undefined"로 로그가 남음
let targetTempC;
// let targetTempC = undefined;와 동일
변수 범위
전역 변수
: 어떤 함수의 바깥에 변수를 선언
: 현재 문서의 다른 코드에 해당 변수를 사용할 수 있음
지역 변수
: 함수 내부에 변수를 선언
: 오직 그 함수 내에서만 해당 변수를 사용할 수 있음
* ECMAScript 6 이전의 JavaScript는 block문 범위가 없음
: 블록 내에 선언된 변수는 그 블록 내에 존재하는 함수(지역적)
See the Pen [JS] 변수 범위 by 박미림 (@RIMDD) on CodePen.
변수 호이스팅
: JavaScript 변수가 최상단으로 올려지는 것을 말한다.
: 끌어올려진 변수는 undefined값을 반환함
( 이 변수를 사용 혹은 참조한 후에 선언 및 초기화하더라도 undefined로 반환함)
See the Pen [JS] 호이스팅 by 박미림 (@RIMDD) on CodePen.
호이스팅 때문에,
함수 내의 모든 var문은 가능한 함수 상단 근처에 두는 것이 좋음.
또는,
ECMAScript 2015의 let (const)는 변수를 블록의 상단으로 올리지 않음.
변수가 선언되기 전에 블록 안에서 변수를 참조하게 되면 ReferenceError를 발생 시킴
변수는 블록 시작부터 선언이 처리 될 때까지 'temporal ded zone'에 위치하게 됨
ex)
console.log(x); // ReferenceError
let x = 3;
될 수 있으면 변수보다 상수를 써야 함
: 데이터의 값이 아무 때나 막 바뀌는 것보다는 고정된 값이 이해하기 쉽고,
상수를 사용하면 값을 바꾸지 말아야 할 데이터에서 실수로 값을 바꾸는 일이 줄어듬
참고자료:
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Values,_variables,_and_literals
'웹프로그래밍 무작정따라하기 > JS' 카테고리의 다른 글
[JavaScript] 배열 함수 정리 (0) | 2021.02.24 |
---|---|
[JavaScript] DOM이란? (0) | 2021.02.13 |
[JavaScript] 회원가입 약관동의 체크박스 전체선택, 해제 (0) | 2021.01.25 |
[TypeScript] 타입스크립트 기본타입 (0) | 2021.01.24 |
[TypeScript] 타입스크립트 설정 파일 (0) | 2021.01.24 |
댓글