js的一些常用判断小实验
下面是小实验案例
// 0
if(undefined) {
console.log('1');
} else {
console.log('0');
}
// 0
if(null) {
console.log('1');
} else {
console.log('0');
}
// 0
if('') {
console.log('1');
} else {
console.log('0');
}
// 0
if(0) {
console.log('1');
} else {
console.log('0');
}
// 1
if('0') {
console.log('1');
} else {
console.log('0');
}
// 0
if(false) {
console.log('1');
} else {
console.log('0');
}
// 1
if('false') {
console.log('1');
} else {
console.log('0');
}
var json = {};
// 1
if (json) {
console.log('1');
} else {
console.log('0');
}
// 0
if (json.val) {
console.log('1');
} else {
console.log('0');
}
var val;
// 0
if (val) {
console.log('1');
} else {
console.log('0');
}
var arr = [];
// 1
if (arr) {
console.log('1');
} else {
console.log('0');
}
// 0
if (arr[0]) {
console.log('1');
} else {
console.log('0');
}
if (undefined_val) { // 报错
console.log('1');
} else {
console.log('0');
}
通过案例,我们能知道:
- undefined,null判断结果是false
- 0,false判断是false
- ‘0’,‘false’判断是true
- {},[]空json,空数组判断是true
- 空json中的值,空数组中的值判断是false
- 定义的变量没有赋值的,判断是false
- 未定义的变量会报错
方法论:这些都是单元测试,经常做些单元测试比较,能够更好的更灵活的更清晰的运用知识。