Javascript 中的 && 和 || 使用小结

 更新时间:2010年04月25日 01:50:10   作者:  
Javascript 中的 && 和 || ,有时候用作条件判断,非常的简洁,不熟悉的朋友可能不太了解,这里最后有个朋友补充,非常的好。

普通情况下的 && 和 || 比较简单,这里不进行讨论。

准备两个对象用于下面的讨论。

复制代码 代码如下:

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

不用搞得这么复杂 推荐大家看这部分的说明
a && b : 将a, b转换为Boolean类型, 再执行逻辑与, true返回b, false返回a
a || b : 将a, b转换为Boolean类型, 再执行逻辑或, true返回a, false返回b
转换规则:
对象为true
非零数字为true
非空字符串为true
其他为false

相关文章可以参考下面几篇,综合一下
js 与或运算符 || && 妙用
js利用与或运算符优先级实现if else条件判断表达式
javascript &&和||运算法的另类使用技巧

相关文章

  • 前端实现CSV文件解析的方法详解

    前端实现CSV文件解析的方法详解

    这篇文章主要为大家详细介绍了前端实现CSV文件解析的相关方法,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解一下
    2024-03-03
  • javascript-简单的计算器实现步骤分解(附图)

    javascript-简单的计算器实现步骤分解(附图)

    输入内容的判断,对于事件对象的来源的判断以及数学运算“+,-,*,/”的使用,感兴趣的朋友可以学习下
    2013-05-05
  • JavaScript享元模式原理与用法实例详解

    JavaScript享元模式原理与用法实例详解

    这篇文章主要介绍了JavaScript享元模式原理与用法,结合实例形式总结分析了JavaScript享元模式基本概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • javascript实现随时变化着的背景颜色

    javascript实现随时变化着的背景颜色

    这篇文章主要介绍了javascript实现随时变化着的背景颜色的方法,非常的简单实用,有需要的小伙伴可以直接拿走。
    2015-04-04
  • Math.js解决js中小数精度丢失问题

    Math.js解决js中小数精度丢失问题

    在JavaScript中进行小数运算时,会容易出现精度丢失的问题,例如在进行两个小数相加时,结果并不是预期的精确值,而是一个近似值,,使用第三方库Math.js可以避免精度丢失的问题,本文导入Math.js库和使用Math.js的方法来进行小数运算,同时还可以指定格式来保留小数位数
    2023-12-12
  • 微信小程序实现日期格式化和倒计时

    微信小程序实现日期格式化和倒计时

    这篇文章主要为大家详细介绍了微信小程序实现日期格式化和倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • iOS微信H5页面橡皮回弹效果的踩坑记录

    iOS微信H5页面橡皮回弹效果的踩坑记录

    移动端开发时,H5长页面在iOS系统中滑动时,当页面滑动到顶部或底部时,页面还能够上滑或下滑,手指离开屏幕后回弹,这就时橡皮筋效果,这篇文章主要给大家介绍了关于iOS微信H5页面橡皮回弹效果的相关资料,需要的朋友可以参考下
    2021-07-07
  • Json字符串转换为JS对象的高效方法实例

    Json字符串转换为JS对象的高效方法实例

    一般JSON字符串转换为JS对象,都使用var jsonStr="{a:1}";var jsonObj = eval("("+jsonStr+")");
    2013-05-05
  • 详细教你微信公众号正文页SVG交互开发技巧

    详细教你微信公众号正文页SVG交互开发技巧

    这篇文章主要介绍了详细教你微信公众号正文页SVG交互开发技巧,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • js计算字符串长度包含的中文是utf8格式

    js计算字符串长度包含的中文是utf8格式

    使用js写的计算字符串长度且其中中文是utf8格式的,具体的实现如下,感兴趣的朋友可以参考下
    2013-10-10

最新评论