let-const-rest-parameter-spread-operator-destructuring
let
재선언 할 수 없다.
block 스코프
똑같은 명으로 정의할 수 없다.
window에 붙지 않는다.
Quiz
for (var i = 1; i < 11 i++) {
setTimeout(function () {
console.log(i);
}, i * 1000);
}for (let i = 1; i < 11 i++) {
setTimeout(function () {
console.log(i);
}, i * 1000);
}Example
{
let jason = {
codename: 'blackbriar',
kill: function (target) {
target = null;
}
};
let operator = {
codename: 'onion',
answer: function () {
alert('run away!');
}
};
jason.kill(operator);
}
console.log(jason.codename);
console.log(operator.codename);quiz
풀이
window에 붙지 않는다
why? window가 객체인데.. 없는 속성한테 접근하려고 해서이다.
더 엄격해졌다.
라는 에러를 띄운다. 'ㅁ' hoisting이 아예 안됐다곤 할 수 없으니 더 엄격해져서 error를 띄운다.
TDZ
hoisting이 일어나지만 var와는 다르게 var는 undefined로 초기화가 되는거지만, let은 초기화가 안되는거다.
const
constant 상수(변하지 않는 수)에서 온 이름이다.
재선언 할 수 없다.
재할당 할 수 없다.
Example
rest parameter
나머지 매개변수
배열로 만들어 준다.
"arguments" is different
spread operator
변수의 값으로 사용될 수 있다.
인자에 사용 될 수 있다.
배열과 객체의 [], {} 모양을 벗길 수 있다.
Example
rest랑 똑같이 생겼는데 rest는 함수에서 마지막 매개변수에서만 사용된다.
Example
Example
destructuring
배열과 객체 뿌셔..
키는 변수명 선언 자리와 매개변수 자리에 쓸 수 있다.
변수명은 변수의 값 자리와 인자 자리에 쓸 수 있다.
배열의 요소와 객체의 키값을 키 이름(또는 새로운)의 변수로 만들 수 있다.
Example
객체 뿌시기
왼쪽에 객체 모양을 만든다 {}
안에는 속성 값을 써준다.
오른쪽엔 객체 변수명을 써준다.
key말고 다른 변수 명을 쓰고 싶을 때
매개변수에서도 객체 Destructuring
변수를 선언하고 만드는곳에 Destruturing 하였다. -> 매개변수
함수 인자부분에 변수명을 썼다.
매개변수 부분에 {} 쓰고 안에 부시고자 하는 key를 썼다.
Array Destructuring
Example
매개변수에도 배열 Destructuring
함수의 인자값으로 배열 변수명을 적는다.
매개변수에 []을 작성하고 안에 지정하고자 부시고자 하는 매개변수 명을 적는다.
rest parameter + destructuring
example 1
example 2
풀이
처음에 원했던 return c를 했을 때 3을 도출하는 법
구조가 일치해야 한다
Last updated
Was this helpful?