자바스크립트의 어색한 부분? 헷갈리는 부분들을 정리해 놓았습니다.
// 잘 못 된 예시
// output: 'stringcodeit'
console.log(typeof 'javascript' + 'codeit')
// 잘 된 예시
// output: 'string'
console.log(typeof ('javascript' + 'codeit'))
// 궁금 예시
// outupt: 'number' -> 'string'
console.log(typeof typeof 8)
// 불린
// output: False
let x = '', 0, NaN // 그 외 나머지는 True
console.log(x)
// 형변환을 자동으로 하고 계산을 해준다.
// 아무리 그래도.. 이것은 신기하다
console.log(4 + '2') // 42
console.log(4 + 2) // 6
console.log(4 - true) // 3
console.log(4 * false) // 0
console.log(4 / '2') // 2
console.log('4' ** true) // 4
console.log(4 % 'two') // NaN
일치 비교 연산(===)을 사용해야한다... 동등 비교 연산(==)은 형변환이 발생한다.
console.log(1 == '1') // 이것은 절대 같을 수 없지만 형 변환으로 같다고 나온다.
console.log(Number(true) == String(1)) // True
let year = 2018;
let month = 3;
let day = 11;
let myNumber = 3;
function getTwice(x){
return x * 2;
}
console.log('생년월인은' + year + '년' + month + '월' + day + '일')
// 템플릿 문자열
console.log(`생년월일은 ${year}년 ${month}월 ${day}일`)
// 함수도 사용할 수 있다.
console.log(`${myNumber}의 두 배는 ${getTwice(myNumber)} 입니다.`)
값이 주어지지 않은 변수에는 undefined 로 출력이 된다.
undefined는 메모리가 할당 되었지만 안에 값이 없는 것을 의미한다.!?
null은 의도적으로 값이 없을 나타낼 때 사용된다.
let x; // undefined
let y = null;
console.log(x);
console.log(x == y) // true
console.log(x === y) // false