function scope() {
if (true) {
var a = 123
}
console.log(a)
}
scope()
var의 경우 함수레벨의 유효범위를 가지기 때문에 해당 함수 실행시 에러나지 않음
Truthy(참 같은 값)
true, {}, [], 1, 2, 'false', -12, '3.14' ...
Falsy(거짓 같은 값)
false, '', null, undefined, 0, -0, NaN(Not a Number, 숫자데이터)
NaN = 1 + undefined 더해진값이 숫자로 판단할 수 없는 특정 값일 경우
숫자데이터이긴한데 숫자가아니다 라는 뜻으로 NaN 이 있음
if ('false') {
console.log(123)
}
//'false'는 형변환으로 인해 정상적으로 출력됨
const a = 1
const b = '1'
console.log(a === b) // false, 일치연산자
console.log(a == b) // true, 동등연산자