Today I learned!/오늘 하루 배운 것, 기억할 것

자바스크립트에서 빈 배열인 변수와 []가 비교가 안되는 이유

sweesweet 2022. 5. 10. 21:05

이전에 파이썬에서 빈 배열임을 확인할때 arr==[]를 써서 그런지, 자바스크립트에서 동일하게 썼는데 문제가 아예 안풀렸었다. 이유가 뭔지 전혀 이해가 되지 않았었다.

오늘에서야 그 이유를 알게 되었는데, 자바스크립트에서는 빈 배열인 변수와 []는 주소가 서로 다른 빈 배열이라고 생각하기 때문이다. 참조 자료형이기 때문에 그런 것.... 

object로 예를 들자면

const a = {key:1,key2:2}
const b ={key:1,key2:2}
console.log(a===b)//false

 이 두개의 객체가 모양은 같더라도 참조하는 주소는 다른 것 처럼 빈 배열인 arr와 []도 다른 것이다.