'use strict'
// 2. variable
// let (ES6에서 추가되었다.)
let globalName = 'global name';
{
let name = 'ellie';
console.log(name);
name ="dellie";
console.log(name);
}
console.log(name);
console.log(globalName);
{ } 안에 있는 변수들은 block 변수
block 변수들은 block 밖에서 참조할 수 없음.
block 밖에 있는 변수들은 global 변수라고 하며 항상 메모리에 저장되어있기때문에 자제하는것이 좋음
var를 쓰면 안되는 이유.
- Hoisting때문에 (Hoisting이란 어디에 변수를 선언했던간에 가장 상단에서 선언한것으로 되는것)
- 이때문에 변수를 선언하지 않고도 변수를 참조시키는것이 됨.
- 또한 var는 block scope를 무시하기때문에 블럭안에있는 변수도 블럭 밖에서 찍어볼 수 있음;
Constans
- 선언하고 난 다음에는 값이 절대로 바뀌지 않는 변수
- immutable data type 이라고 한다
Constans 를 써야하는 이유
- 보안 (외부에서 변경할 수 없음)
- thread safety (다양한 쓰레드들이 동시에 값을 변경하지 못하도록 함)
- human mistake를 방지
Variable type
1. primitive type =>더이상 나눠질 수 없는 single item : number ,String ,boolean, null, undefined, symbol
2. object type=> single item을 한개로 묶어서 관리할 수 있게해주는것
box container , function, first-class function(function을 변수에 담을수 있는것);
숫자끝에 n을 붙이면 bigint 로 취급한다(크롬/사파리만 취급)
Boolean
-false : 0, null, undefined, NaN, ''
-true : 다른 모든 값들
Symbol
-고유한 식별자가 필요할때 사용
-동일한 symbol로 작성했어도 서로 다르다고 인식한다.
-symbol은 바로 출력하면 에러가 나기때문에 symbol.description으로 string으로 바꿔서 출력한다.
Dynamic type
- 자료형을 구분짓지 않고 할당해서 나중에 자료형이 변화하는 타입.
TypeScript
- JS위에 Type을 올려준 단어 (자스는 런타임에서 실시간으로 바뀌는변수라서..)
'JS > 드림코딩앨리' 카테고리의 다른 글
8. 배열 제대로 알고 쓰자. 자바스크립트 배열 개념과 APIs 총정리 (0) | 2021.04.21 |
---|---|
7. Object 넌 뭐니? (0) | 2021.04.21 |
6. 클래스와 오브젝트의 차이점(class vs object), 객체지향 언어 클래스 정리 (0) | 2021.04.21 |
5. Arrow Function은 무엇인가? 함수의 선언과 표현 (0) | 2021.04.21 |
4. 코딩의 기본 operator, if, for loop (0) | 2021.04.21 |