obj == 'undefined' || !obj,问题直接写法标题上了,求解答

obj == 'undefined' || !obj,如题,这里obj正常是一个js对象或者json对象,undefined理解,就只不存在,但是!obj是怎么个意思啊

阅读 3.3k
2 个回答
Argument Type Result
Undefined Return false
Null Return false.
Boolean Return argument.
Number Return false if argument is +0, −0, or NaN; otherwise return true.
String Return false if argument is the empty String (its length is zero); otherwise return true.
Symbol Return true.
Object Return true.

补充一下,"undefined" 不是 undefined,前者是一个字符串,后者是一个值。字符串 "undefined" 转换成 boolean 时为 true,值 undefined 转换为 boolean 时为 false

|| 是或
所以A || B 这样写的时候,如果A为true,后面的B直接就不用看了,整句返回true。
如果A为false才会去看B为true还是false,从而判断整句是true还是false

例子:
var a= msg || ""; //msg是一个变量
这句的意思就是,如果msg变量不是(0,null,undefined,空字符串等),a就等于msg,否则a为空字符串

!obj的在此句中的意思就判断obj是不是一个对象,是对象就为false,不是对象就为true

if(obj){
    console.log("obj是一个对象,或一个非undefined,null,0,空字符串的值");
}
if(!obj){
    console.log("obj不是一个对象,并且obj可能是undefined,null,0,空字符串");
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题