-
Notifications
You must be signed in to change notification settings - Fork 0
익숙치 않은 문법
develjsw edited this page Jun 3, 2023
·
6 revisions
특정 객체가 특정 클래스의 인스턴스인지 확인하는 문법
- object instanceof class (JS 문법)
- return type : boolean
ex)
class Person {}
const person = new Person();
console.log(person instanceof Person); // true
console.log(person instanceof Object); // true
const obj = {};
console.log(obj instanceof Person); // false
console.log(obj instanceof Object); // true
구조 분해 할당 문법
- 배열 구조 분해 할당
- let [사용 할 변수명1, 사용 할 변수명2] = "문자열".split(분해 기준);
ex)
let [lastName, firstName] = "Jeon SangWoo".split(' ');
console.log(lastName); // Jeon
console.log(firstName); // SangWoo
- let [사용 할 변수명1, , 사용 할 변수명2] = [값1, 값2, 값3, 값4, 값5];
쉼표 사용하여 필요하지 않은 요소 제외
ex)
let [ar1, , ar2] = ["val1", "val2", "val3", "val4", "val5"];
console.log(ar1); // val1
console.log(ar2); // val3
- let [사용 할 변수명1, 사용 할 변수명2, 사용 할 배열명] = [값1, 값2, 값3, 값4, 값5];
ex)
let [strVar1, strVar2, ...etcStrArr] = ["1번", "2번", "3번", "4번", "5번"];
console.log(strVar1); // 1번
console.log(strVar2); // 2번
console.log(etcStrArr); // ["3번", "4번", "5번"]
- 객체 구조 분해 할당
- let { 해당 객체의 프로퍼티명1: 새롭게 사용 할 변수명1, 해당 객체의 프로퍼티명2: 새롭게 사용 할 변수명2, } = 분해하고자 하는 객체
ex1)
let productInfo = {
name: "노트북",
manufacturer: ["samsung","lg"],
price: 1700000
}
let { name: newNameVar, manufacturer, price: newPriceVar } = productInfo;
console.log(newNameVar); // 노트북
console.log(manufacturer); // ["samsung","lg"]
console.log(newPriceVar); // 1700000
ex2)
let { name: newNameVar, manufacturer, price: newPriceVar } = { name: "노트북", manufacturer: ["samsung","lg"], price: 1700000 };
console.log(newNameVar); // 노트북
console.log(manufacturer); // ["samsung","lg"]
console.log(newPriceVar); // 1700000
ex3)
// {}안에 순서가 바뀌어도 정상 동작
let { name: newNameVar, manufacturer, price: newPriceVar } = { manufacturer: ["samsung","lg"], price: 1700000, name: "노트북" };
console.log(newNameVar); // 노트북
console.log(manufacturer); // ["samsung","lg"]
console.log(newPriceVar); // 1700000
- let {
해당 객체의 프로퍼티명1: 새롭게 사용 할 변수명1 = 프로퍼티명1에 할당되지 않은 경우 이 값 사용1,
해당 객체의 프로퍼티명2: 새롭게 사용 할 변수명2 = = 프로퍼티명2에 할당되지 않은 경우 이 값 사용2,
해당 객체의 프로퍼티명3: 새롭게 사용 할 변수명3
} = 분해하고자 하는 객체
ex1)
let productInfo = {
manufacturer: ["samsung","lg"]
}
let { name: newNameVar = "노트북", manufacturer, price: newPriceVar = 1700000 } = productInfo;
console.log(newNameVar); // 노트북
console.log(manufacturer); // ["samsung","lg"]
console.log(newPriceVar); // 1700000
ex2)
let productInfo = {
name: "노트북",
manufacturer: ["samsung","lg"],
price: 1700000
}
// 원하는 정보만 추출
let { price: newPriceVar } = productInfo;
console.log(manufacturer); // ["samsung","lg"]
- ETC
ex1)
let title, width, height;
// 에러 발생
{ title, width, height } = { title: "Menu", width: 200, height: 100 };
ex2)
let title, width, height;
// 에러 미 발생
({ title, width, height } = { title: "Menu", width: 200, height: 100 });