第3章:js 逻辑‘与和或’的笔记

逻辑‘与和或’操作

  1. js 中的逻辑‘与和或’操作属于短路操作,即如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值。
  • 以 逻辑与 为例, 第一操作数为false,则返回 false,不执行第二个操作数(即使第二个操作数 有错误)
    var a = false
    var result = (a && someUndefinedVar)   //  没有发生错误,因为 someUndefinedVar 没有执行
    var b = true
    var result = (b && someUndefinedVar)   //  发生错误:  someUndefinedVar is no defined
  • 同理对于 逻辑或, 第一操作数为true,则返回 true,不执行第二个操作数(即使第二个操作数 有错误)
    <br >
  1. 逻辑‘与和或’操作可以适用于任何类型的操作数,而不仅仅是布尔值。
    ** 在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值 **
    // 以 逻辑与 为例 
   var obj1 = {
       a: 'b'
   }
   var c = 'Halo'

   var r1 = obj1 && c 
   console.log(r1)  // r1 = c ,因为 obj1 转换为布尔值为 true, 则接着执行第二个操作数,结果返回第二个操作数

   var t = true
   var r2 = t && obj 
   console.log(r2) // r2 = obj1 ,根据笔记 2 返回 obj1

   var obj2 = {
       d: 'e'
   }
   var r3 = obj1 && obj2
   console.log(r3) // r3 = obj2, 因为 obj1 转换为布尔值为 true,接着执行第二个操作数,返回 obj2

<br >

  1. 逻辑 **‘与’ ** 中的某一操作数为 null undefined NaN,则对应返回 null undefined NaN
  • 若 逻辑操作 中既有 null 也有 NaN, 则根据短路操作先遇到谁就返回谁
// 例
var r = null  && undefined
console.log(r) // r = null, 因为先遇到 null ,由于短路操作,第二操作数不执行,直接返回 null

<br >

  1. 逻辑 ‘或’ ** 中的两个操作数都**为 null undefined NaN,才返回 null undefined NaN
  • 若 逻辑操作 中既有 null 也有 NaN, 则根据**笔记 2 **返回第二个操作数
// 例
var r = null  || undefined
console.log(r) // r = undefined, 因为先遇到 null ,null 转化为布尔值为 false,所以接着执行第二操作数,根据笔记 2 返回第二操作数

<br >

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 什么是 JavaScript 语言? JavaScript 是一种轻量级的脚本语言。所谓“脚本语言”(script...
    oWSQo阅读 1,948评论 0赞 1
  • 有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的...
    老衲法号一眉道人阅读 1,513评论 0赞 4
  • 最近开始学习的JS,做这个笔记只是为了记录一下自己的学习情况,也算是督促自己每天多看点书。基本都是书上的内容整理了...
    丨ouo丨阅读 384评论 2赞 1
  • 我是这样界定和老大的关系的,亦师亦友,他既是我的老师,也是我的朋友。 毫不避讳的说,刚一开始确实对他意见挺大的,关...
    Ningers阅读 594评论 2赞 0
  • 脚本通常有三种数据类型:整型,布尔型,文本类型。 变量:脚本执行过程中可以改变的数据 关键字:var 常量:脚本执...
    程序员龙少阅读 246评论 0赞 0

友情链接更多精彩内容