Typescript 문서 - 02
var
let과 const는 Javascript에서 비교적 새로운 유형의 변수이다.
- const는 변수의 값을 바꿀 수 없고, let은 const의 확장 개념이다.
- 따라서, Typescript도 let과 const를 지원한다.
- var를 사용하면 변수의 Hosting현상(해당 변수가 속한 범위=scope의 최상단으로 올려 버리는 현상)
var n = 1;
function test() {
console.log(n);
var n = 2;
console.log(n);
}
test();
for (var i = 0; i < 10; i++) {
setTimeout(function() { console.log(i); }, 100 * i);
}
-> 우리가 생각 했던 건 10에서 하나씩 감소해서 찍히는 건데…
for (var i = 0; i < 10; i++) {
(function(i) {
setTimeout(function() { console.log(i); }, 100 * i);
})(i);
}
-> 해결 방법은 각 반복할 때마다 i를 캡처해주는 즉히 호출 함수 표현식 (IIFE)를 사용하는 것
let
-
let은 var와 동일한 방식으로 사용된다. (변수 앞에 추가)
-
block-scope를 호출(var로 선언 된 변수와 달리 블록 범위 변수는 가장 가까운 포함 블록 또는 for 루프 외부에서 볼 수 없음)
-
block-scoped 변수는 선언되기 전에는 읽거나 사용할 수 없다.
a++;
let a;
- 동일한 변수를 중복으로 선언하면 let은 error를 발생시킨다.
let x = 10;
let x = 20;
const
const numLivesForCat = 9;
const kitty = {
name: "Aurora",
numLives: numLivesForCat,
}
kitty = {
name: "MinJin",
numLives: numLivesForCat
};
kitty.name = "SooJin";
let vs. const
- 값을 수정할 계획이 없다면
const를 사용한다.
Array destrucring
let input = [1, 2];
let [first, second] = input;
console.log(first)
console.log(second)
[first, second] = [second, first];
function f([first, second]: [number, number]) {
console.log(first);
console.log(second);
}
f([1, 2]);
let [first, ...rest] = [1, 2, 3, 4];
console.log(first);
console.log(rest);
Spread operator
let first = [1, 2];
let second = [3, 4];
let together = [0, ...first, ...second, 5];
let infos = {name: "Soojin", country: "Seoul"};
let together = {...infos, hobby: "eating"};
댓글
댓글 쓰기