
1) numbers
2) String
var multiline = `안녕하세요.
반갑습니다.
제 이름은 홍길동입니다.`;var lastName = '홍';
var firstName = '길동';
console.log(`제 이름은 #{lastName}#{firstName} 입니다.`); 3) boolean
4) undefined and null
5) symbol and object
// 심벌 생성
var key = Symbol('key');
console.log(typeof key);
// 객체 생성
var obj = {};
obj[key] = 'value';
console.log(obj[key]);
JavaScript는 동적 타입 언어
var test;
console.log(typeof test); //undefined
test = 1; //number
test = null; //object
//자바스크립트의 첫 번째 버전의 버그이지만 기존 코드에 영향을 줄 수 있어 아직까지 수정되지 못하고 있다.
test = {}; //객체
test = []; //배열
test = function(); //함수
암시적 형변환
1) convert to string
console.log(10 + '20');console.log(`10 + 20 : ${ 10 + 20 }`); console.log(1 + '');
console.log({] + '');
console.log(true + '');
//console.log(Symbol() + ''); Symbol()은 string으로 변환 불가
2) conver to number
console.log(10 * '5');
//NaN - 피연산자 숫자 변환 불가로 연산 수행 불가
console.log(10 % 'JavaScript');// 'a'가 문자열로 인식되어 NaN
// 문자는 모두 NaN으로 변환되기 때문에 NaN은 비교 연산자에서 어떤 값과도 비교 불가능.
console.log(`10 > 'a' : ${ 10 > 'a' });console.log(+'JavaScript'); //NaN
console.log(+ture); //1
console.log(+{}); //NaN
console.log(+[]); //0
3) convert to boolean
if(undefined) console.log("if(undefined)"); //false
if(1) console.log(if(1)); //true
if(0) console.log(if(0)); //false
명시적 형변환
1) convert to string
console.log(String(10));
console.log(String(NaN));
console.log(String(Infinity));
console.log((10).toString());
2) convert to number
console.log(Number('10'));
console.log(ParseFloat('10'));
console.log(parseInt('10.01'));
console.log('10'*1);
3) convert to boolean
console.log(Boolean('JavaScript')); //true
console.log(!!'JavaScript');