티스토리 뷰
반응형
Array의 Prototype method인 slice를 사용하다가 아래 결과가 이상하여 정리해본다.
const a = [1, 2, 3, 4, 5, 6].slice(0, 3); // [1, 2, 3]
const b = [1, 2, 3];
console.log(a === b); // false
slice 함수는 단순히 Array의 부분 Array를 새로 만드는 것으로 알고있었지만 정확히 말하자면 진짜로 부분 Array로 원본 Array의 메모리 주소를 참조한다. 따라서 a와 b를 비교하기 위해서는 아래와 같이 join이나 JSON.stringify를 사용하여 string값으로 비교해야한다.
console.log(JSON.stringify(a) === JSON.stringify(b)) // true
console.log(a.join('') === b.join('')) // true
반응형
'Javascript와 Typescript' 카테고리의 다른 글
preventDefault vs. stoppropagation (0) | 2024.12.23 |
---|---|
Math Prototype 사용 시 Babal Build Error -BABEL_TRANSFORM_ERROR (1) | 2024.12.20 |
undefined와 null, 언제 사용해야 할까? (0) | 2024.12.17 |
Javascript 기본값 할당 (0) | 2024.12.11 |
Javascript Numeric Separators (0) | 2024.12.02 |
- Total
- Today
- Yesterday
반응형