IT

자바스크립트(JavaScript) - Hoisting, let, const, Dynamic Typing

jeonganWkd 2020. 10. 12. 12:27

1. 자바스크립트에서 데이터를 저장하는 3가지 키워드

  • let : 자바스크립트에서 변수를 저장하는 유일한 키워드(ES6 문법에서 처음 사용되었다)

  • var : ES6 문법 이전에 사용되던 방식으로, 글로벌 변수로 선언되기 때문에 지금은 사용하지 않아야 한다

var 를 사용하기 전에, 값을 저장하는 것을 hoisting 이라고 한다.

  • const : 상수를 저장할 때 사용

2. 호이스팅(hoisting)

  • 기존의 변수 이름만 저장하는 방식은 var로 처리되기 때문에 모두 글로벌 변수로 처리된다. 따라서 글로벌 변수는 변수를 어디에 선언했는지 상관없이 파일의 가장 위쪽에 올라가서 글로벌 변수로 처리되는 것

Hoisting

 

코드블럭에 선언해도 var 는 이 파일의 맨 위 글로벌 영역에 자동으로 위치하게 되므로, 코드블럭 밖에서도 아무데서나 사용할 수 있게 된다.
중괄호로 둘러싸인 코드블럭 안에서 만든 변수는 코드블럭 안에서만 접근 가능하다

3. 상수(const)를 사용하는 이유

  • 상수는 한번 저장되면 바뀌지 않으므로 보안에 좋다
  • 여러 쓰레드가 동시에 접근해도 안정성을 보장한다
  • 사람이 실수로 값을 바꾸는 것을 방지할 수 있다

4. 자바스크립트에서 null과 undefined 의 차이

  • null : 값이 없다고 명시적으로 저장한 것
  • undefined : 변수를 선언만 하고, 값을 저장하지 않은 것

5. 다이나믹 타이핑(Dynamic Typing)

  • 자바스크립트에서는 변수를 선언하고 값을 저장할 때 데이터 타입을 적지 않는다. 따라서 처음에는 문자열을 저장했다가 나중에는 숫자를 저장할 수도 있듯이 다양한 데이터 타입을 하나의 변수에서 저장할 수 있는 것

6. 변수의 타입

  • primitive : number, string, boolean, null, undefined
  • object : 객체
  • function :  함수도 변수에 저장할 수 있다. 즉, 함수도 다른 데이터 타입처럼 변수 할당도 가능하고, 파라미터 전달도 가능하다(콜백함수 사용 가능)

'IT' 카테고리의 다른 글

Node.js CI/CD on AWS(github, codepipeline, eleaticbeanstalk)  (0) 2020.10.16
콜백함수 Callback Function  (0) 2020.10.13
VCS(Version Control System) - Git  (0) 2020.10.06
RDBMS 와 NoSQL  (0) 2020.10.05
On-Premise / Cloud Services  (0) 2020.09.29