본문 바로가기

전체 글291

rest, spread const slime = { name: '슬라임', attribute: 'cute', color: 'red'};이 있다고 하자. name 속성을 비구조화 할당하고 나머지는 others에 저장하려면 어떻게 할까? const { name, ...other } = slime; slime속성에 추가로 height: 180을 가지는 객체 tall_slime를 만들려면 어떻게 할까? const tall_slime = { ...slime, height: 180}; const numbers = [0,1,2,3,4];이 있다고 하자. 0,1을 one,two 변수에 담고 나머지는 others에 저장하려면 어떻게 할까? const [one, two, ...others] = numbers; numbers가 두번 반복하는 [0.. 2020. 6. 28.
비구조화 할당(구조분해 할당) ES6에서 도입된 문법이다. 호환성을 위해 사용하기 위해 babel과 같은 추가 작업이 필요하다. 배열 [1,2,3,4,5]에서 1,2를 a,b에 한번에 할당하고 싶다면 어떻게 해야할까? const [a, b] = [1,2,3,4,5]; 와 같이 사용하면 된다. { name: 'bob', age: 15, height: 170}이 있을 때 age의 값을 age 변수에 담으려면 어떻게 해야할까? const {age} = { name: 'bob', age: 15, height: 170}; 주의할 것은 속성 이름을 일치시켜줘야한다. age 변수말고 my_age에 담으려면 어떻게 해야할까? const {age: my_age} = { name: 'bob', age: 15, height: 170}; 혹시 없을 경우를.. 2020. 6. 28.
falsy 한 값 falsy한 값이란 if의 조건식으로 평가되었을 때 false로 취급되는 값이다. 쉽게 말하면 if ( ? ) { } 에서 ? 조건이 false로 계산되는 값이다. 예를 들면 if( 'hello') { console.log('hello~~'); } 와 같은 상황에서 'hello'는 false로 판단될까? 아니면 true로 판단될까? 자바스크립트에서는 true로 판단된다. falsy한 값은 다음과 같다. undefined, null, 0, '', NaN let a ; let b = null; let c = 0; let d = ''; let e = a+ b; 이를 실제로 확인하는 방법은 !!a 처럼 !!를 붙여서 확인하는 방법이다. 또는 a ? true: false로 삼항 연산자를 사용해서 확인할 수도 있다.. 2020. 6. 28.
클래스 클래스는 IE에서 지원하지 않는다. 간단하게 살펴보고 넘어가자. 객체 생성자와 프로토타입에 함수를 등록할 때 편하다. Animal 클래스를 만들고 객체를 만들려면? class Animal { constructor(type, name, sound) { this.type = type; this.name = name; this.sound = sound; } say() { console.log(this.sound); } }; const dog = new Animal("개", "멍멍이", "멍멍"); dog.say(); say가 prototype에 자동으로 등록됨. Dog 클래스를 만들려면? class Dog extends Animal { constructor(name, sound) { super("개", nam.. 2020. 6. 27.