Javascript 中的 && 和 ||
Java  /  管理员 发布于 3年前   181
准备两个对象用于下面的讨论
var alice = { name: "alice", toString: function () { return this.name; }}var smith = { name: "smith", toString: function () { return this.name; }}
在 javascript 中,对于 && 不仅仅可以用于 boolean 类型,也不仅仅返回 Boolean 类型的结果。
1.如果第一个操作数是 Boolean 类型,而且值为 false ,那么直接返回 false。
2.如果第一个操作数是 Boolean 类型,而且值为 true,另外一个操作数是 object 类型,那么将返回这个对象。
3.如果两个操作数都是 object 类型,那么,返回第二个对象。
4.如果任何一个操作数是 null,那么,返回 null。
5.如果任何一个操作数是 NaN,那么返回 NaN。
6.如果任何一个操作数是 undefinded,那么返回 undefined。
alert(false && alice); // falsealert(true && alice); // alicealert(alice && smith); // smithalert(smith && alice); // alicealert(null && alice); // nullalert(NaN && alice); // NaNalert(undefined && alice); // undefinedalert(alice && undefined); // undefined
对于 || 来说,同样也不仅仅用于 Boolean 类型,也不仅仅返回 Boolean 类型的结果。
事实上,null、undefined、NaN 都将被看作 false,而对象被当作 true。
1.如果第一个操作数是 boolean 类型,而且值为 true, 那么,直接返回 true。
2.如果第一个操作数是 Boolean 类型,而且值为 false ,第二个操作数为 object,那么返回 object 对象。
3.如果两个操作数都是 object 类型,那么返回第一个对象。
4.如果两个操作数都是 null,那么,返回 null。
5.如果两个操作数都是 NaN,那么返回 NaN。
6.如果两个操作数都是 undefined,那么,返回 undefined。
alert(false || alice); // alicealert(true || alice); // truealert(alice || smith); // alicealert(smith || alice); // smithalert(null || alice); // alicealert(alice || null); // alicealert(null || null); // nullalert(NaN || alice); // alicealert(alice || NaN); // alicealert(NaN || NaN); // NaNalert(undefined || alice); // alicealert(alice || undefined); // alicealert(undefined || undefined); // undefined
博主 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 @ xiaoB 你只管努力,剩下的叫给天意;天若有情天亦老,..xiaoB 在
2023年国务院办公厅春节放假通知:1月21日起休7天中评论 会不会春节放假后又阳一次?..BUG4 在
你翻墙过吗?国内使用vpn翻墙可能会被网警抓,你需了解的事中评论 不是吧?..博主 在
go语言+beego框架中获取get,post请求的所有参数中评论 @ t1 直接在router.go文件中配就ok..Jade 在
如何在MySQL查询中获得当月记录中评论 Dear zongscan.com team, We can skyroc..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号