자바스크립트는 대소문자를 구별
텍스트 데이터를 나타내는 데 사용
' ' " " 백틱으로 텍스트를 감싼다
여러줄로 나타낼때는 멀티라인 문자열은 백틱으로 허용
var first = 'Ung-mo';
var last = 'Lee';
// ES6: 표현식 삽입
console.log(`My name is ${first} ${last}.`); // My name is Ung-mo Lee.
var foo = true;
console.log(foo); // true
foo = false;
console.log(foo); // false
변수에 값이 없다는 것을 의미할 때는 null을 할당해야 한다.
변수는 선언, 함수는 정의
변경 불가능한 원시타입이며 유일무이한 값이다
var a = Symbol('abc') //label
//undefined
var b = Symbol('abc')
//undefined
a === b
//false
자바스크립트의 데이터 타입은 크게 원시 타입과 객체 타입으로 분류되는데,
중요한것은 자바스크립트는객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것이객체이다
var num = 100;
var a = num;
var b = num;
0x123 : 100,
0x111 : 식별자 a, 값은 0x123
0x112 : 식별자 b, 값은 0x123
console.log(a === b) //true
a와 b에 저장된 주소는 다르지만, 값을 할당한 주소는 같다!!
메모리 주소를 하나만 저장하여, 불변값을 유지!!
변수는 타입을 갖지 않는다. 하지만, 값은 타입을 갖는다.
따라서 값에 의해 변수의 타입이 결정된다고 생각하면 된다.
자바스크립트는
동적으로 타입을 변경할 수 있다
즉, 자바스크립트의 변수는 선언이 아닌,할당에 의해 타입이 결정되며
재 할당으로 변수의 타입을변경할 수 있다
이를 동적 타이핑이라고 하며,
자바스크립트는 동적 타입 언어라고 한다
var foo;
console.log(typeof foo); // undefined
foo = 3;
console.log(typeof foo); // number
foo = 'Hello';
console.log(typeof foo); // string
foo = true;
console.log(typeof foo); // boolean
foo = null;
console.log(typeof foo); // object
foo = Symbol(); // 심벌
console.log(typeof foo); // symbol
foo = {}; // 객체
console.log(typeof foo); // object
foo = []; // 배열
console.log(typeof foo); // object
foo = function () {}; // 함수
console.log(typeof foo); // function