프로그래밍/JavaScript

[JavaScript] 속성 존재 여부 확인, 다중 할당

승민아 2022. 12. 27. 15:49

속성 존재 여부 확인

객체에 없는 속성에 접근하면 undefined 자료형이 나온다.

조건문을 통해 undefined인지 아닌지 확인하여 속성 여부를 확인한다.

const object = {
    name: '책이름1',
    pirce: 777
}

if(object.name !== undefined){
    console.log('name 속성이 존재.')
} else {
    console.log('name 속성이 없음.')
}

if(object.author !== undefined){
    console.log('author 속성이 존재.')
} else {
    console.log('author 속성이 없음.')
}

이외 방법들

// 방법
if(object.name) {
    console.log('name 속성이 있음.')
} else {
    console.log('name 속성이 없음.)
}

if(object.author) {
    console.log('author 속성이 있음.')
} else {
    console.log('author 속성이 없음.)
}

// 방법
object.name || console.log('name 속성이 없음.')
object.author || console.log('author 속성이 없음.)

 

기본 속성 지정

const object = {
    name: '책이름1',
    price: 777
}

object.name = object.name !== undefined ? object.name : '제목 미정'
object.author = object.author !== undefined ? object.author : '저자미상'

console.log(JSON.stringify(object, null,2))

 

아래의 형태로도 가능하다.

object.name = object.name || '제목 미정'
object.author = object.author || '작가미상'

 

배열 기반 다중 할당

배열과 비슷한 방법으로 여러 개의 변수에 값을 할당하는 다중 할당이 가능하다.

[식별자, 식별자, ...] = 배열

 

변수에 배열 값 할당

let [a, b] = [1, 2] // 할당
console.log(a, b)

[a, b] = [b, a] // 값 교환
console.log(a, b)

 

변수에 배열 값 일부 할당

let arr = [1, 2, 3, 4, 5]
const [a, b, c] = arr
console.log(a, b, c)

 

객체 기반 다중 할당

객체 속성을 꺼내서 변수로 할당할 수 있다.

{ 속성이름, 속성이름, ...} = 객체
{ 식별자=속성이름, 식별자=속성이름, ...} = 객체

 

속성을 그대로 꺼내거나 속성을 꺼내 변수에 저장하는 방법이 있다.

const object = {
    name: '책이름1',
    price: 777
}

const { name, price } = object
console.log(`속성 그대로 꺼냄 ${name}, ${price}`)

const { a=name, b=price } = object
console.log(`다른 이름으로 속성을 꺼내 저장 ${a}, ${price}`)