충돌 회피
let arr = [1,2,3,4,5];
console.log(arr.length) // 5 출력
arr.length = 50;
console.log(arr.length) // 50 출력
let arr2 = [1,2,3,4,5];
console.log(arr2.length) // 5 출력
const length = Symbol('length');
arr2[length] = 50;
console.log(arr2[length]) // 50 출력
심볼은 언제나 고유한 값
// 이름이 같아도 값이 다르다
let symbol1 = Symbol('hello');
let symbol2 = Symbol('hello');
console.log(symbol1 === symbol2) // false
console.log(symbol1 == symbol2) // false
심볼은 for..in 구문에서 출력되지 않음
// symbol 미사용
let arr = [1,2,3,4,5];
arr.someProperty = 6;
for(let i in arr) {
console.log(i); // 0,1,2,3,4,someProperty 출력
}
// symbol 사용
let arr = [1,2,3,4,5];
let someProperty = Symbol('someProperty');
arr[someProperty] = 6;
for(let i in arr) {
console.log(i); // 0,1,2,3,4 출력
}