frontend/javaScript

[js 기본기] Nullish coalescing operator, prototype 메소드

김포레스트 2024. 8. 21. 10:49

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값을 반환해준다.