Skip to content

익숙치 않은 문법

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

구조 분해 할당 문법

  1. 배열 구조 분해 할당
  • 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번"]
  1. 객체 구조 분해 할당
  • 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"]
  1. 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 });