자바스크립트의 데이터타입에 대해 알아보자
let
을 사용하여 변수를 지정
let dog = 'dooddi';
*var
이라는 타입도 존재하지만, var
을 사용하지 말아야 하는 이유는?
var
은 호이스팅이 존재한다. 호이스팅은 아래에 있는 선언을 위로 끌어올려 선언하는 것. var
을 사용하면 아래와 같이 age
를 선언하기 전에 사용이 가능하다.age = 4;
var age;
//let은 불가능
name = 4; // 에러 발생
let name;
var
은 block scope가 존재하지 않는다. 스코프 밖에서도 var
변수를 사용할 수 있다.{
var age = 4;
}
console.log(age); // scope 밖에서도 호출이 가능
변하지 않는 const
를 선언
const daysInWeek = 7;
자바스크립트에는 number
타입 한가지만 존재
const age = 24;
const height = 170.3
const infinity = 1 / 0; // infinity
const negativeInfinity = -1 / 0;// -infinity
const nAn = 'nAn' / 2; // NaN
const char = 'c'
const name = 'dooddi';
const hi = 'hi ' + 'dooddi';
//`과 ${}을 사용해 좀 더 편리하게 사용가능
const hhi2 = 'hi ${dooddi}!';
0, null, undefined, NaN은 모두 false로 취급
const isDog = true;
const isOlderThan = 3 < 2; //false
let nothing = null; //null
let x; //undefined
let x2 = udefined; //undefined
고유한 identifier을 생성
const s1 = Symbol('id');
const s2 = Symbol('id');
console.log(s1 === s2); //false
const sf1 = Symbol.for('id');
const sf2 = Symbol.for('id');
console.log(sf1 === sf2); //true
const dooddi = {name: 'dooddi', age: 3};
//`dooddi`가 가리키는 object의 pointer는 `const`이므로 변경이 불가능하지만, dooddi.name 또는 dooddi.age는 변경 가능
dooddi.name = 'woohyun';
dooddi.age = '24';