강의 2-8 ~ 2-20 내용 중
javascript는 신기하게 빈 값을 표현하는 null말고도 undefined라는 자료형이 있는데, 이것은 돌려줄게 없다면 'undefined'를 반환합니다.
하지만, 둘이 완전히 같은 것은 아닙니다. 물리적으로 똑같지만, 둘의 자료형은 다릅니다. null의 자료형은 'object'로 명시되어있고 undefined의 자료형은 'undefined'로 명시되어있습니다.
console.log(undefined == null) // true
console.log(undefined === null) // false
console.log(typeof(null)) // object
console.log(typeof(undefined)) // undefined
결과값이 "null"이 아니라 "object"이 이유는 자바스크립트에서 유명한 버그라고 합니다. 언어가 만들어진 초창기 실수로 인해 자료형이 "object"가 되었다고 합니다. 그러므로 값이 null인지 확인하기 위해서는 === null을 이용해야 합니다.
javascript는 C언어와 달리 자료형을 선언해줄 필요가 없습니다.
let 변수명 = 값의 형태로 변수를 선언할 수 있습니다. 참고로, console.log() 는 값을 리턴하는게 아니라 화면에 그림그리듯이 출력하는 역할만을 수행합니다. 그래서, undefined가 리턴값이 됩니다.
(변수 선언은 한글, 특수문자, 하트와 별 같은 이모티콘, 한자으로도 가능하다고 합니다.)
let total = 5000 + 8000 + 10000 + 9000;
console.log(total); // 32000
total = 3;
console.log(total); // 3
의도적으로 빈 값을 만들 때 null로 선언해준다고 합니다. 왜냐하면 개발자가 의도적으로 넣었다는 것을 보여주기 위함이라고 합니다.
javascript에서 기본적으로 빈 값은 undefined이기 때문에 개발자가 직접 null을 사용하지 않는 이상 보기 힘들다고 합니다.
let 외에도 변수를 선언하는 예약어로 const와 var가 있습니다. const는 constant(상수)의 줄임말입니다. 상수는 변하지 않는 수라는 뜻입니다.
const value = 123;
console.log(value);
value = 1; // error
var는 변수(variable)의 줄임말입니다. 예전에는 많이 사용했지만, 다소 어려운 특성 때문에 const와 let을 최근에는 주로 사용한다고 합니다. var의 특징은 let은 다시 선언하면 error가 나지만 var는 error가 나지 않습니다.
var hi = 'hello';
var hi = 'hello';
var hi = 'hello';