JS判定一个对象是否存在
昨天遇见了一个判定对象是否存在的逻辑问题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为空js中判断对象是否为空,typeof是undefined。
2.isnotdefined
console.log(str2); if(typeof str2 == "undefined"){ console.log("str2 ok") } if(str2){ console.log("str2 ok") }
提示:UncaughtReferenceError:str2isnotdefined。str2没有申明,所以提示isnotdefined。对于一个没有申明的变量他的typeof是undefined。直接consolestr2会报错,所以if(str2)不能判定str2是否存在。