&& 和 ||
来源:互联网 发布:python科学计算库 编辑:程序博客网 时间:2024/04/27 11:30
普通情况下的 && 和 || 比较简单,这里不进行讨论。
准备两个对象用于下面的讨论。
var alice = {
name: ”alice”,
toString: function () {
return this.name;
}
}
var smith = {
name: ”smith”,
toString: function () {
return this.name;
}
}
在 javascript 中,对于 && 不仅仅可以用于 boolean 类型,也不仅仅返回 Boolean 类型的结果。
l 如果第一个操作数是 Boolean 类型,而且值为 false ,那么直接返回 false。
l 如果第一个操作数是 Boolean 类型,而且值为 true,另外一个操作数是 object 类型,那么将返回这个对象。
l 如果两个操作数都是 object 类型,那么,返回第二个对象。
l 如果任何一个操作数是 null,那么,返回 null。
l 如果任何一个操作数是 NaN,那么返回 NaN。
l 如果任何一个操作数是 undefinded,那么返回 undefined。
alert(false && alice); // false
alert(true && alice); // alice
alert(alice && smith); // smith
alert(smith && alice); // alice
alert(null && alice); // null
alert(NaN && alice); // NaN
alert(undefined && alice); // undefined
alert(alice && undefined); // undefined
对于 || 来说,同样也不仅仅用于 Boolean 类型,也不仅仅返回 Boolean 类型的结果。
事实上,null、undefined、NaN 都将被看作 false。而对象被当作 true。
l 如果第一个操作数是 boolean 类型,而且值为 true, 那么,直接返回 true。
l 如果第一个操作数是 Boolean 类型,而且值为 false ,第二个操作数为 object,那么返回 object 对象。
l 如果两个操作数都是 object 类型,那么返回第一个对象。
l 如果两个操作数都是 null,那么,返回 null。
l 如果两个操作数都是 NaN,那么返回 NaN。
l 如果两个操作数都是 undefined,那么,返回 undefined。
alert(false || alice); // alice
alert(true || alice); // true
alert(alice || smith); // alice
alert(smith || alice); // smith
alert(null || alice); // alice
alert(alice || null); // alice
alert(null || null); // null
alert(NaN || alice); // alice
alert(alice || NaN); // alice
alert(NaN || NaN); // NaN
alert(undefined || alice); // alice
alert(alice || undefined); // alice
alert(undefined || undefined); // undefined
- . 和 ->
- || 和&&
- .和::
- “?”和“!”
- #和##
- && 和 ||
- 、和
- #和##
- .//和..//
- 和
- ?和\?
- ./ 和 ../
- #和##
- #、和##
- #和##
- *和&
- <和>
- $*和¥$@
- oUpFileStream.Write Request.BinaryRead (Request.TotalBytes)上传提示错误 0104
- Linux下c++编程与kdevelop的环境配置
- ext js 中combo对象的使用
- 假象工作目标.PHONY 的三种用法
- thickbox子页面表单提交数据后刷新父页面
- && 和 ||
- Flex 和 AIR 版本之间的不同
- 如何得到pdo设备的设备指针
- 译;将Python嵌入到Qt程序中
- Informix -244 错误分析
- VC++中使用,安装及部署水晶报表的方法
- Weka一些基础内容
- 初始化是检测浏览器的类型
- 教大家建立一个别人既无法进入又无法删除的文件夹