실무에서 변수 var는 사용을 자제한다 .
var 예약어를 사용한 변수는 함수 영역의 스코프를 가진다.
즉 스크립트 소스 전체에서 사용할 수 있는 변수이다. 또한 재할당과 재선언이 가능하다.
그래서 var 예약어를 사용하면 잘못했을 경우 예상하지 못한 프로그램 오류를 발생시킬 수 있다.
var를 이용한 변수의 특징 - 호이스팅
자바스크립트에서 변수를 사용할 때 조심해야하는 개념이 있다.
바로 '호이스팅 hoisting'이라고 하는데, 호이스팅이란 '끌어올리다'라는 뜻을 가지고 있다.
상황에 따라 변수의 선언과 할당을 분리해서 선언 부분을 *스코프의 가장 위쪽으로 끌어올리는 것을 말한다.
끌어올린다고 해서 실제로 소스코드가 맨 위로 올라간다는 것이 아니라, 그런 식으로 자바스크립트 엔진이 해석한다는 뜻이다.
아래에 코드를 써놨어도 상단에서 대기 타고 있는 것
먼저 콘솔로그로 y출력를 명령한 후
var y = 2를 선언해줬더니 컴퓨터는 혼자 임의로 y가 있다고 해석해서 y는 있네 근데 아직 값이 없네 하고 undefined 값을 출력하게 되는 것이다.
스코프란? scope
변수를 선언하고 사용할 때 변수가 적용되는 유효범위를 뜻함.
변수가 유효하게 쓰일 수 있는 영역을 가리키는 것이다.
자바스크립트에서 함수에서 변수를 사용할 때 영역에 주의해야한다.
한 함수 안에서만 사용하고 다른 함수에서 사용할 수 없는 변수가 있는가 하면,
어느 함수에서나 다 사용할 수 있는 변수가 있다.
'자바스크립트 > 변수' 카테고리의 다른 글
[자바스크립트] - 변수 let / 함수레벨의 스코프(함수영역) , 블록레벨의 스코프(블록영역) (1) | 2024.07.25 |
---|---|
[자바스크립트] -스코프 / 지역변수(로컬변수) / 전역변수(글로벌변수) (0) | 2024.07.25 |
[자바스크립트] - 변수 이름 지을 때 규칙 (코딩 컨벤션) (0) | 2024.07.05 |
[자바스크립트] - 변수에 담을 수 있는 자료형 / 문자형(String), 숫자형(Number), 논리형(Boolean), 빈 데이터(Null, undefined) //문자형 숫자를 다시 숫자형 데이터로 변환하고 싶을때 (0) | 2024.07.05 |
[자바스크립트] - 변수 var / document.write("데이터") / console.log(데이터) (0) | 2024.07.04 |