라벨이 null인 게시물 표시

[JavaScript] null 병합 연산자 (??) - (nullish coalescing operator)

null 병합 연산자 (??) 를 사용하면 여러 피연산자 중 확정 되어있는 변수를 찾을 수 있다. 확정되어있는 변수라는 말은 정의된 값을 말한다. 즉, null과 undefined 값이 아닌 모든 값을 true로 인식한다는것이다. null 병합 연산자를 사용하는 이유 const age = 45 ; const userAge = age || "secret" ; console . log ( userAge ); // 45 const num = null ; const count = num || "undefined" ; console . log ( count ); // undefined 위 예제와 같이 or 연산자를 사용하여 코드를 많이 작성한다. 앞에 값이 false이면 뒤에 값을 반환하고, 앞에 값이 true이면 뒤에 값을 반환한다. 하지만 여기서 문제점이 발생한다. 일반적으로 false로 인식되는값들은 아래와 같다. false, '', 0, null, undefined 이러한 false로 인식되는 값들이 상황에 따라 문제를 발생시킨다. 상황에따라 사용자에게 값을 받을때 0을 받거나 ' ' 공백을 받을 수 있다. 그런데 이러한 경우에도 false로 인식되어 원하는 방식대로 코드가 동작하지 못하게된다. 아래에 예시로 문제점을 확인해보자. // ex1) 애기의 나이를 사용자로부터 받아올 떼 const babyAge = "" ; const userAge = babyAge || "secret" ; console . log ( userAge ); // secret // ex2) 물 섭취 횟수를 사용자로부터 받아올 떄 const drinkCount = 0 ; const totalCount = drinkCount || "undefined" ; console . log ( count ); // undefined or 연산자를 사용

[JavaScript] null과 undefined 차이점

null과 undefined 차이점 null은 비어있는 값, 존재하지 않는 값, 알 수 없는 값을 나타낸다. undefined는 값이 할당되지 못한 상태를 나타낸다. null과 undefined 둘 다 값이 없음을 나타내는 단어이지만 차이가 존재한다. null은 값을 의도적으로 초기화 시킨것이고 undefined는 기본적으로 값이 할당되지 않는 것이다. 즉, null은 타입이 객체이며, 비어있는 변수이고 undefined는 타입이 결정되지 않은 변수이다. 코드를 작성할 때는 null 값을 사용하도록 하는것이 좋다. 그 이유는 null은 사람이 의도적으로 비어있는 값을 설정할때 사용하는것이고 undefined는 컴퓨터가 원래부터 비어있는 값을 나타날때 사용하는 값이다. 그러므로 undefined를 사용하면 컴퓨터가 비어있는 값을 나타내는것인지 코드를 작성한 개발자가 임의적으로 없는 값을 표현하기위해서 undefined를 작성했는지 파악하기 어려워진다. 그러므로 개발시 의도적으로 비어있는 값을 설정할 경우에는 null 값을 사용하도록 한다.