null과 undefined

bebrain·2022년 11월 30일
0

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

2개의 댓글

comment-user-thumbnail
2022년 12월 1일

널과 언디파인은 개념을 잘 잡고가는게 좋더라구요 ㅎㅎ늘헷갈림

1개의 답글