자바스크립트에는 신기한 기능이 많다. 근데 왜 이름에 자바를 붙였을까 조금 양심업다.
??연산자는 진짜 처음봐서 신기하다.
여러 피연산자 중 그 값이 확정되어있는 변수를 찾을 수 있다고 하는데 신기하다.
??
??
??
의 쓰임새1. 값이 정해진 변수를 간편하게 찾아낼 수 있다.
// a가 null이거나 undefined이면 b를 반환하고, a가 둘다 아니면 b를 반환한다.
x = a ?? b
x = (a !== null && a !== undefined) ? a : b;
2. 변수에 기본값을 할당하는 용도로 사용할 수 있다.
// height가 null이나 undefined인 경우, 100을 할당
height = height ?? 100;
||
: 여러 값들 중 첫번째 truthy 값을 반환합니다. (0이나 빈문자열은 취급하지 않는다.)
??
: 여러 값들 중 첫 번째 정의된(defined) 값을 반환합니다. (0이나 빈문자열도 취급한다.)
||
은 0을 거짓값으로 판단해 무시하지만 ??
는 0도 정의된 값으로 인식한다는 점에서 차이가 있다.
0 || null || 3 || 0 //3
0 ?? null ?? 3 ?? 0 //0
우선순위가 낮기 때문에 괄호를 신경써서 쓰자.!
괄호 없이 ??를 ||나 &&와 함께 사용하는 것은 금지되어있다.