Undefined는 선언은 되었지만 값이 할당된 적이 없는 변수에 접근하거나,
존재하지 않는 객체 프로퍼티에 접근할 경우 반환되는 값이다.
Null은 사용자가 고의로 값을 할당하여 값이 없다는 것을 명시한 것이고,
undefined는 사용자가 아닌 프로그램이 실행을 하면서 존재하지 않는 값의 변수를 호출하도록 (주로 오타나 누락된 변수) 한
경우와 같이 호출상 오류를 나타내는 특정형식이라고 생각하면 쉽다.
var message;
alert(typeof message); // "undefined"
| 데이터 타입 | true로 변환되는 값 | false로 변환되는 값 |
|---|---|---|
| Number | 0 이 아닌 모든 숫자, 무한대 포함 | O, NaN |
| Boolean | true | false |
| Object | 모든 객체 | null |
| String | 비어 있지 않은 문자열 모두 | ""(빈 문자열) |
| Object | 해당 없음 | undefined |
console.log(Boolean(true)); //true
console.log(Boolean(false)); //false
console.log(Boolean("abc")); //true
console.log(Boolean("")); //false
console.log(Boolean(1)); //true
console.log(Boolean(NaN)); //false
console.log(Boolean({"a" : 1}));//true
console.log(Boolean(null)); //false
console.log(Boolean(undefined));//false
//NaN이 포함된 조작은 항상 NaN을 반환함.
alert(NaN/10); // NaN
//NaN은 어떤 값과도 일치하지 않고, NaN끼리도 일치하지 않음.
alert(NaN == NaN) //false
alert(1 == '1'); // true -> 값만 비교
alert(1 === '1'); // false -> 값 + 데이터 형까지 비교
//test ? expression1 : expression2
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
//if문으로 작성하면 다음과 같음.
var now = new Date();
var greeting = "Good";
if(now.getHours() > 17) {
greeting += " evening.";
} else {
greeting += " day.";
}
for(var in object) {
실행할 코드
}
ex)
var person = {
'firstName' : 'yoon',
'lastName' : 'chuljoong',
'age' : 31
};
for(var key in person) {
console.log('key: ' + key + ', value: ' + person[key]);
}