Dev/JS

[JS] 간단한 Javascript 문제

JieunJieun 2019. 8. 28. 22:22

Facebook Javascript 커뮤니티에 다음과 같은 문제가 올라왔습니다!

이 그룹에는 Javscript에 대한 흥미로운 글이 많으니 가입하시는 것을 추천드립니당~

const adverb = "Just"
name = 'Javascript'

const adverb_result = delete adverb
const name_result = delete name

console.log(adverb_result) // ?
console.log(name_result) // ?

정답은 아래와 같습니다!

console.log(adverb_result) // false
console.log(name_result) // true

delete 연산자의 특성을 알면 쉬운 문제인데요, delete 연산자는 객체의 프로퍼티(속성) 을 지우는 기능을 가진 연산자 입니다.
그리하여 delete 연산을 통해 성공적으로 프로퍼티가 지워졌을 경우에 true, 삭제할 수 없는 경우 false 를 반환합니다.
하지만 존재하지 않는 프로퍼티를 삭제할 때에도 true가 반환된다는 특징이 있습니다.

아무튼! 위에서 adverb_resultfalse가 나오는 이유는 프로퍼티가 아닌 변수를 지우려고 하여 false가 반환되는 것이고,
키워드를 사용하지 않은 name_resultglobal 객체의 프로퍼티로 들어가는 것이므로 true가 반환되는 것 입니다.

존재하지 않는 프로퍼티를 삭제할 때에도 true가 반환된다는 점이 흥미로운 delete 연산자네요.
그럼 이만 !