Javascript 中的 && 和 ||
Java  /  管理员 发布于 4年前   302
准备两个对象用于下面的讨论
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
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号