반응형
1. 스코프(scope)와 호이스팅(hoisting)
- 스코프(scope)
- 변수에 접근할 수 있는 범위
- 변수의 생명주기
- 변수의 유효 범위
{ } - 호이스팅(hoisting)
- 변수나 함수의 선언이 어디에 있든 상관없이 다른 코드들보다 가장 먼저 끌어올려져서 실행되는 특징
- 변수는 선언 단계, 초기화 단계, 할당 단계 이 세 가지를 거친다.
var num = 10;
① 선언 단계 : 공간 확보
② 초기화 단계 : undefined 넣기
③ 할당 단계 : 10이 대입
- 선언 단계가 무조건 맨 처음에 실행된다는 것이 호이스팅이다.
2. 변수의 선언 방식
var 변수명 = 값;
let 변수명 = 값;
const 상수명 = 값;
- 변수의 선언 방식으로는 var, let, const 세 가지가 있음
- var
12345678910<script>var a = "hello";console.log(a); // hellovar a = "bye";console.log(a); // byea = "good";console.log(a); // good</script>cs
- var는 제어문 영역에서의 지역변수와 전역 변수의 구별이 되지 않음
12345<script>num = 10;var num;console.log(num) // 10</script>cs
- 위와 같이 암묵적인 오류가 있기에 잘 사용하지 않는다.
- 이러한 암묵적인 오류 허용을 하기 싫다면 <script> 바로 아래에 'use strict'를 작성하여 엄격 모드로 해석하면 됨 - let
- 이론적으로는 호이스팅이 되지만 실제로는 되지 않음
- 재선언 불가능, 재할당(대입) 가능
12345678910<script>let b = "hello";console.log(b); // hellolet b = "bye";console.log(b); // 오류b = "good";console.log(b); // good</script>cs - const
- 재선언 불가능, 재할당 불가능
- 자바에서 상수와 같은 역할을 함
12345678910<script>const c = "hello";console.log(c); // helloconst c = "bye";console.log(c); // 오류c = "good";console.log(c); // 오류</script>
반응형
'웹개발 > JavaScript' 카테고리의 다른 글
[JavaScript] 함수(function) (0) | 2022.05.13 |
---|---|
[JavaScript] 배열(Array), 빠른 for문 (0) | 2022.05.13 |
[JavaScript] 대화상자(dialog), 제어문(조건문, 반복문), 간단한 예제 (0) | 2022.05.12 |
[JavaScript] 자료형, 형변환, 연산자, NaN (0) | 2022.05.12 |
[JavaScript] 자바 스크립트(JavaScript)와 선언 및 출력 (0) | 2022.05.12 |