null
존재하지 않는 값
비어있는 값(empty)
알 수 없는 값(unknown)
undefined
값이 할당되지 않은 상태로
변수에 값이 지정되지 않은 경우
.이나 []로 접근할 때, 해당 데이터가 존재하지 않는 경우
① return문이 없거나 ② 호출되지 않는 함수의 실행결과
typeof 연산자
인수의 자료형을 반환한다
typeof x / typeof (x) 형태
자료형에 따라 처리방식을 다르게 하고 싶거나 변수의 자료형을 빠르게 알아내고 싶을 때 사용
⚠ typeof null
: console.log(typeof null)로 해보면 결과가'object'로 반환되나
사실 null은 객체가 아니다.
null은 별도의 고유한 자료형을 가지는 특수값으로 객체가 아니지만
초기 자바스크립트의 오류로 'object'로 반환되는 것이다.
문제는 오류를 수정했을 때 이 초기버전의 자바스크립트를 쓴 기존코드에
영향이 갈 수 있어 오류수정을 하지 않는다고 한다.
ex)
❌ if(typeof 변수 === 'object'){} ← null값이 포함될수있다
⭕ if(typeof 변수 === 'object' && (변수 !== null)){}
🔔 오늘의 지식 : 단항 연산자 +와 숫자형으로의 변환
let apples = "2";
let oranges = "3";
console.log(apples + oranges) // 23
문자형이므로 당연하게도 5가 아닌 23이 나온다.
여기서 단항연산자 +를 각각 앞에 붙여주면,
let apples = "2";
let oranges = "3";
console.log( +apples + +oranges ); // 5
이항 덧셈 연산자가 적용되기 전에 두 피연산자는 숫자형으로 변화한다.
console.log( Number(apples) + Number(oranges) ); // 5
Number(...)
를 사용해서 같은 동작을 하는 코드를 작성할 수 있지만, 코드가 더 길어진다.
let x = 1;
alert( +x ); // 1
let y = -2;
alert( +y ); // -2
숫자에는 아무런 영향을 미치지 않지만,
alert( +true ); // 1
alert( +"" ); // 0
숫자형이 아닌 피연산자는 숫자형으로 변환시킨다.
※ 참고로 -도 가능함 😀
let apples = "2";
let oranges = "3";
console.log( -apples --oranges ); // 1
널과 언디파인은 개념을 잘 잡고가는게 좋더라구요 ㅎㅎ늘헷갈림