JS判断一个对象是否存在
今天遇到了一个判断对象是否存在的逻辑问题,本以为很简单,
if(Android){
console.log(“Android存在则输出,不存在则跳过”);
}
可实际操作却遇到了问题。
1. undefined
var str1;
console.log(str1)
if(!str1){
console.log("ok")
}
if(str1 == null){
console.log("str1 ok")
}
if(str1 == undefined){
console.log("str1 ok")
}
if(typeof str1){
console.log("str1 ok")
}
if(typeof str1 == "undefined"){
console.log("str1 ok")
}
输出:undefined,ok,
这是开发中最常见的,也就是定义了一个变量而没有给他赋值,最后调用时候输出undedined。因为str1是undefined所有if判断他是false,然后输出ok。str1为空,typeof 是 undefined。
2. is not defined
console.log(str2);
if(typeof str2 == "undefined"){
console.log("str2 ok")
}
if(str2){
console.log("str2 ok")
}
提示:Uncaught ReferenceError: str2 is not defined。str2没有声明,所以提示is not defined。对于一个没有声明的变量他的typeof是undefined。直接console str2会报错,所以if(str2)不能判断str2是否存在。
参考了阮一峰的日志