본문 바로가기

JS/ECMAscript

기본 인자 기존 자바스크립트에서는 함수의 인자와 함수 호출 시 인수의 갯수가 다르면 인자에 undefined가 할당되었다. 값이 제대로 들어 갔는 지 확인하려면 일일이 undefined과 값을 비교해야 했는데 ECMAscript에서는 인자에 기본 값을 설정할 수 있게 되었다. function func(a,b,c=3){ console.log(a,b,c)} func(1,2) 왼쪽부터 차례대로 할당된다. 만약 c에 기본 값이 할당되지 않으면 오류가 난다.
객체 리터럴 변경사항 트레일링 콤마 원소를 추가할 때 ,를 붙일 필요 없다.const comma={ a:1, b:2,} 단축 속성명const [a,b]=[1,2]const obj={a:a,b:b}const obj2={a,b} console.log(obj)console.log(obj2) 단축 메서드명// oldconst objWithFunction = { f: function () { console.log(1); } }; objWithFunction.f(); // 1 ​ // new (ES6~ ) const objWithFunction2 = { f() { console.log(1); } }; objWithFunction2.f(); // 1 계산된 속성 이름객체에서 키를 대괄호 []로 감쌀 경우 키의 값을 속성 이름으로 사용한다..
나머지 연산자와 전개 연산자 나머지 연산자 나누기를 했을 때 나머지를 구하는 %와 같은 연산자는 아니다.배열의 일부를 변수에 할당할 때 쓴다. 비구조화 시 나머지 원소들을 다시 배열로 만든다. a에는 1만 들어가고 ...b를 하면 b에는 [2,3,4]가 들어간다.const [a,...b]=[1,2,3,4]console.log(a)console.log(b) 전개 연산자 배열에 있는 원소들을 함수 인자들에 전개시킬 때 사용한다. arr에 있는 원소 1,2,3이 각각 func함수의 x,y,z로 전달된다.function func(x,y,z){ console.log(x) console.log(y) console.log(z)}const arr=[1,2,3];func.apply(null,arr) 객체 전개 객체를 다른 객체에서 전개시킬 수 있다..
var vs let vs const var는 함수 범위이다. 같은 함수 내에서 쓰이면 블럭에 상관 없이 값을 재정의할 수 있다.반면에 let과 const는 같은 블럭 내에서는 재정의가 불가능하다. let과 const는 블럭 범위이다. 그리고 둘 다 선언하기 전에는 사용이 불가능하다. let은 값의 재할당이 가능해서 값 할당 없이 선언만 하고 나중에 값을 할당할 수 있다.반면 const는 재할당이 불가능하기 때문에 값 할당 없이 선언만 하면 오류가 난다. let과 const 모두 다른 블럭에서라면 재선언이 가능하다. 왜냐하면 let과 const 모두 블럭 범위이기 때문에 블럭을 벗어나면, 즉 함수가 종료되면 생명이 끝난다. 예를 들어 A,B 함수가 있다면 A에서 let a, B에서 let a 선언이 가능하다. 마찬가지로 A에서 const a..