728x90
반응형
const arr1 = ['a', 'b', 'c'];
const arr2 = ['b', 'c', 'a'];
console.log(
arr1.sort() === arr1,
arr2.sort() == arr2,
arr1.sort() === arr2.sort()
);
* true true true
* true true false
* false false false
* true false true
자바스크립트 배열 동등 비교
답은 true, true, false !
숫자나 문자열 비교시 ==, === 연산자는 가능하지만, 객체나 배열은 불가능하다. 주소값을 비교하기 때문
배열을 비교할 때, 배열의 정렬은 중요하지 않다. 배열끼리 비교할 때 주소값을 비교한다!
.sort() 함수는 배열을 정렬하고 해당 배열의 주소값을 반환한다.
즉, arr1.sort()은 arr1 배열이 정렬되고, 해당 arr1 의 주소값이 반환된다.
arr1 과 arr2 의 주소값은 서로 다르기 때문에, 정렬이 같다고 해도 애초에 주소값이 다르니까 false
문제출처
https://quiz.typeofnan.dev/array-sort-comparison/
728x90
반응형
'🌳Frontend > etc' 카테고리의 다른 글
자바스크립트 메모리 누수 관리 및 개선 (0) | 2023.04.11 |
---|---|
익명함수의 메모리 누수 (0) | 2023.04.10 |
프론트엔드 개발자라면 알아야할 : Webpack 심화 (0) | 2023.03.24 |
프론트엔드 개발자라면 알아야할 : Webpack 기본 (0) | 2023.03.24 |
[Jest] it/test/describe 키워드 (0) | 2023.03.21 |