`
MirrorAvatar
  • 浏览: 47949 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ECMAScript的三大布尔操作符

阅读更多

三大布尔操作符:

非(NOT)、与(AND)和或(OR)。运算规则和数学中的非与或一样。

1.逻辑非(!)

操作原理:首先会将它的操作数转换为一个布尔值,然后再对其求反。

转换规则参考:Boolean类型

两次逻辑非(!!),相当于一次Boolean()转换函数。

2.逻辑与(&&)

很重要的一点:

在有一个操作数不是布尔值的情况下,逻辑与操作就不一定返回布尔值;此时,它遵循下列规则:

条件 返回结果
第一个操作数是对象 第二个操作数
第二个操作数是对象 则只有在第一个操作数的求值结果为true的情况下才会返回该对象
两个数都是对象 第二个对象
有一个操作数是null null
有一个操作数是NaN NaN
有一个操作数是undefined undefined

浏览器控制台测试结果:

 

window && 11;  //11
11 && window;  //window对象
Navigator && window;  //window
window && Navigator;  //Navigator
null && window;  //null
NaN && window;  //NaN
undefined && window;  //undefined

 

 

逻辑与操作属于短路操作,即如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值。

3.逻辑或(||)

  • 逻辑或的规则

    与逻辑与操作相似,如果有一个操作数不是布尔值,逻辑或也不一定返回布尔值,返回规则如下:

    条件 返回值
    第一个操作数是对象 第一个操作数
    第一个操作数的求值结果为false 第二个操作数
    两个操作数都是对象 第一个操作数
    两个操作数都是null null
    两个操作数都是NaN NaN
    两个操作数都是undefined undefined
  • 与逻辑与的相似性

    逻辑或操作符也是短路操作符。也就是说,如果第一个操作数的求值结果为true,就不会对第二个操作数求值了。

  • 逻辑或的最佳实践

    利用逻辑或的这一行为(上面说的)来避免为变量赋null或undefined值。

    var myObject = preferredObject || backupObject;

    代码分析:

    变量myObject将被赋予等号后面两个值中的一个。变量preferredObject中包含优先赋给变量myObject的值,变量backupObject负责在preferredObject中不包含有效值的情况下提供后备值。

    如果preferredObject的值不是null,那么它的值将被赋给myObject;如果是null,则将backupObject的值赋给myObject。

    ECMAScript程序的赋值语句经常会使用这种模式。

0
0
分享到:
评论

相关推荐

    JavaScript 布尔操作符解析 && || !|angluo-javascript-88798.pdf

    JavaScript中布尔操作符有三个:非(!)、与(&&)和或(||),它们可以应用于任何类型的值,并不是只限于布尔值。 逻辑非(!)操作符是单目操作符,它对操作数求反,即将其转换为布尔值后再取反。例如,如果操作数...

    JavaScript 布尔操作符解析 || !

    该操作符首先会将它的操作数转换为一个布尔值,然后再对其求反。 下面说明下Boolean()转型函数的一组规则。 数据类型 转换为true的值 转换为false的值 Boolean true false String  任何非空字符串 “”(空...

    ECMAScript解读.doc

    ECMAScript 负责定义 JavaScript 的语法、变量、数据类型、操作符、控制流、函数等基本概念。 1. ECMAScript ECMAScript 是 JavaScript 的核心语言标准,定义了 JavaScript 的语法、变量、数据类型、操作符、控制...

    ECMAScript 5中的属性描述符详解

    属性描述符是ECMAScript 5引入的一个强大特性,它允许开发者更精细地控制对象的属性行为。通过属性描述符,我们可以定义属性的读写规则、是否可枚举以及是否可以删除或改变描述符。本文将深入探讨其中的关键概念,...

    JavaScript中的相等操作符使用详解

    ECMAScript 中的相等操作符由两个等于号 ( == ) 表示,如果两个操作数相等,则返回 true。 相等操作符会先转换操作数(通常称为强制转型),然后比较它们的相等性。 在转换不同的数据类型时,相等操作符遵循下列基本...

    javascript中的相等操作符(==与===区别).docx

    ECMAScript提供了两种主要的相等操作符:“==”(相等)和“===”(全等),它们在逻辑判断和数据验证等方面发挥着重要作用。正确理解并使用这两种操作符对于编写高效且无误的代码至关重要。 #### 二、全等操作符...

    《JavaScript高级程序设计》阅读笔记(三) ECMAScript中的引用类型

    最后,instanceof运算符是一个操作符,用于检测一个对象是否是某个构造函数的实例。instanceof运算符可以用来判断一个对象是否是某个类的实例,或是其继承的类的实例。 对于阅读笔记部分,理解以下内容是十分重要的...

    ECMAScript从零开始学-课件

    比如,Number对象、String对象、Boolean对象的使用,以及如何用`typeof`和`instanceof`操作符来检查数据类型。 3. **类型转换**: 在JavaScript中,类型转换是常见的操作,学习如何在不同数据类型之间转换是至关...

    ECMAScript5.1规范中文版

    ECMAScript 5.1 对算法进行了标准化,确保各种操作在不同环境中的一致性。此外,还定义了源代码文本的处理规则,包括: - **Unicode 格式控制字符**:用于文本格式化或编码控制的特殊 Unicode 字符。 - **空白字符*...

    javascript高级程序设计笔记第一章.docx

    ECMAScript中的操作符系统与C系语言相似,包括算术操作符(如+、-、*、/、%),布尔操作符(&&、||、!),关系操作符(<、>、、>=),相等操作符(==、===)以及赋值操作符(=、+=、-=等)。这些操作符帮助开发者...

    TypeScript 语言规范 (英文PDF)

    比如介绍章节、环境声明、函数类型、对象类型、结构化子类型、上下文类型、类、模块、基本概念、语法规则、声明、作用域、类型系统(包括任意类型、原始类型、数字类型、布尔类型、字符串类型、空类型、未定义类型、...

    ECMAScript数组

    #### 三、栈和队列操作 **1. 栈操作** - **先进后出**:最后进栈的元素最先被移除。 - **方法**: - **push()**:在数组末尾添加一个或多个元素。例如: ```javascript let arr = []; arr.push(1); arr.push...

    JavaScript程序设计课件:第 3 章 表达式与操作符.ppt

    在JavaScript编程语言中,表达式和操作符是构建和控制程序流程的基础元素。表达式是由数值、变量和运算符组成的组合,它们可以被计算并产生新的值。这与C语言中的概念是相似的。 3.2 运算符概述: 在JavaScript中,...

    JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符

    JavaScript中的运算符和操作符是构成表达式的基础,用于执行各种类型的数据操作和逻辑运算。在编程语言中,数据类型定义了数据的基本结构和如何存储数据,而运算符和操作符则是如何操作这些数据的规则。在ECMAScript...

    javascript运算符——逻辑运算符全面解析

    无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作符首先会将它的操作数转换成一个布尔值,然后再对其求反 逻辑非对操作数转为布尔类型的转换类型与Boolean()转型函数相同,只不过最后再将其结果...

    程式导师实验计划第三期_JavaScript_下载.zip

    它的基础包括变量、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(如算术操作符、比较操作符、逻辑操作符)、控制结构(如if语句、switch语句、for循环、while循环)以及函数。理解这些基础知识是...

    JavaScript基础

    它与HTML和CSS一起,构成了现代互联网的三大核心技术。本资源主要涵盖了JavaScript的基础内容,这对于任何想要学习或深入理解JavaScript的人来说都是至关重要的。 首先,JavaScript的基础部分包括了变量、数据类型...

    JavaScript学习资料

    3. 操作符:JavaScript支持各种操作符,如算术操作符(+,-,*,/,%)、比较操作符(==,===,<,>,,>=)和逻辑操作符(&&,||,!)。 4. 控制结构:包括条件语句(if...else,switch),循环(for,while,do.....

    JavaScript

    2. 操作符:JavaScript提供了多种操作符,包括算术操作符(+、-、*、/、%)、比较操作符(==、===、!=、!==、<、>、、>=)和逻辑操作符(&&、||、!)。正确使用这些操作符可以帮助我们进行数据处理和条件判断。 3. ...

    JavaScript 第一章 基本语法 1~3节

    在操作符方面,JavaScript提供了各种算术、比较和逻辑操作符。例如,算术操作符用于执行数学运算,如加减乘除;比较操作符用于比较两个值的大小,如等于(==)和全等(===);逻辑操作符用于组合条件,如与(&&)、...

Global site tag (gtag.js) - Google Analytics