1. Nullish coalescing operator
|| 연산자는 0을 false로 인식한다.
그래서 0을 불린값이 아닌 숫자로 인식하고 싶을 때,
null 체크를 null과 undefined로만 거르고 싶을 때
|| 대신 ?? 를 사용하면 됨.
0 || '10' 은 무조건 10 이지만
0 ?? '10' 은 0 이 된다.
2. 배열은 객체다.
const arr = [1, 2, 3];
으로 정의 한 뒤에
arr[' name'] = 4;
하면 그대로 생성이 된다.
원래 배열은 key 값이 없으니까 생성되면 안될 것 같은데..
뭐 그렇다고 한다.
그래서 이렇게 객체처럼 할당된 배열인지 아닌지 여부를 판별해야 할 때가 있는데
그때 instanceof(arr)메소드를 쓴다고 한다.
이것은 최신 문법이므로 만약 js 버전이 낮으면
Array.isArray( arr) 를 쓰자.
3. prototype 메소드
Array.prototype.clear = function() { ... }:
형식의 코드는
clear라는 함수를 생성해서 모든 배열에 적용될 수 있도록 선언하는 형태임.
const arr = [1, 2, 3];
Array.prototype.clear = function() {
this.length = 0;
}
으로 정의되어있다면
arr.clear(); 을 실행할 때
arr이 초기화 된다.
일반함수와의 차이점은
메소드 체이닝이 가능하다는 점.
arr.clear().map() 이런식의 사용이 가능하다.
공통함수 짤 때 아주 유용하겠다는 생각이 든다.
추가 사항은 arr.length 는 배열 자체의 요소 갯수를 세어준다기보다
마지막 요소의 index값을 반환해준다는 것.
[1, 2, 3, , , , , , , ,10] 일 때
빈 요소를 제외하고 4를 반환해주는게 아니라
10이 위치한 요소의 index값을 반환해준다.
'frontend > javaScript' 카테고리의 다른 글
[js / 알고리즘연습] 등차수열의 특정한 항만 더하기, (0) | 2024.09.12 |
---|---|
[js 기본기] arguments, Promise.all(), Promise.race() (0) | 2024.08.22 |
[js / 알고리즘연습]프로그래머스 lv0.n개 간격의 원소들 (0) | 2024.08.19 |
[js / 알고리즘연습] 프로그래머스 lv1.문자 리스트를 문자열로 변환하기 (0) | 2024.07.12 |
[js / 알고리즘연습] 프로그래머스 lv2. 최솟값 만들기 (0) | 2024.03.11 |