三大布尔操作符:
非(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程序的赋值语句经常会使用这种模式。
相关推荐
JavaScript中布尔操作符有三个:非(!)、与(&&)和或(||),它们可以应用于任何类型的值,并不是只限于布尔值。 逻辑非(!)操作符是单目操作符,它对操作数求反,即将其转换为布尔值后再取反。例如,如果操作数...
该操作符首先会将它的操作数转换为一个布尔值,然后再对其求反。 下面说明下Boolean()转型函数的一组规则。 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 “”(空...
ECMAScript 负责定义 JavaScript 的语法、变量、数据类型、操作符、控制流、函数等基本概念。 1. ECMAScript ECMAScript 是 JavaScript 的核心语言标准,定义了 JavaScript 的语法、变量、数据类型、操作符、控制...
属性描述符是ECMAScript 5引入的一个强大特性,它允许开发者更精细地控制对象的属性行为。通过属性描述符,我们可以定义属性的读写规则、是否可枚举以及是否可以删除或改变描述符。本文将深入探讨其中的关键概念,...
ECMAScript 中的相等操作符由两个等于号 ( == ) 表示,如果两个操作数相等,则返回 true。 相等操作符会先转换操作数(通常称为强制转型),然后比较它们的相等性。 在转换不同的数据类型时,相等操作符遵循下列基本...
ECMAScript提供了两种主要的相等操作符:“==”(相等)和“===”(全等),它们在逻辑判断和数据验证等方面发挥着重要作用。正确理解并使用这两种操作符对于编写高效且无误的代码至关重要。 #### 二、全等操作符...
最后,instanceof运算符是一个操作符,用于检测一个对象是否是某个构造函数的实例。instanceof运算符可以用来判断一个对象是否是某个类的实例,或是其继承的类的实例。 对于阅读笔记部分,理解以下内容是十分重要的...
比如,Number对象、String对象、Boolean对象的使用,以及如何用`typeof`和`instanceof`操作符来检查数据类型。 3. **类型转换**: 在JavaScript中,类型转换是常见的操作,学习如何在不同数据类型之间转换是至关...
ECMAScript 5.1 对算法进行了标准化,确保各种操作在不同环境中的一致性。此外,还定义了源代码文本的处理规则,包括: - **Unicode 格式控制字符**:用于文本格式化或编码控制的特殊 Unicode 字符。 - **空白字符*...
ECMAScript中的操作符系统与C系语言相似,包括算术操作符(如+、-、*、/、%),布尔操作符(&&、||、!),关系操作符(<、>、、>=),相等操作符(==、===)以及赋值操作符(=、+=、-=等)。这些操作符帮助开发者...
比如介绍章节、环境声明、函数类型、对象类型、结构化子类型、上下文类型、类、模块、基本概念、语法规则、声明、作用域、类型系统(包括任意类型、原始类型、数字类型、布尔类型、字符串类型、空类型、未定义类型、...
#### 三、栈和队列操作 **1. 栈操作** - **先进后出**:最后进栈的元素最先被移除。 - **方法**: - **push()**:在数组末尾添加一个或多个元素。例如: ```javascript let arr = []; arr.push(1); arr.push...
在JavaScript编程语言中,表达式和操作符是构建和控制程序流程的基础元素。表达式是由数值、变量和运算符组成的组合,它们可以被计算并产生新的值。这与C语言中的概念是相似的。 3.2 运算符概述: 在JavaScript中,...
JavaScript中的运算符和操作符是构成表达式的基础,用于执行各种类型的数据操作和逻辑运算。在编程语言中,数据类型定义了数据的基本结构和如何存储数据,而运算符和操作符则是如何操作这些数据的规则。在ECMAScript...
无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作符首先会将它的操作数转换成一个布尔值,然后再对其求反 逻辑非对操作数转为布尔类型的转换类型与Boolean()转型函数相同,只不过最后再将其结果...
它的基础包括变量、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(如算术操作符、比较操作符、逻辑操作符)、控制结构(如if语句、switch语句、for循环、while循环)以及函数。理解这些基础知识是...
它与HTML和CSS一起,构成了现代互联网的三大核心技术。本资源主要涵盖了JavaScript的基础内容,这对于任何想要学习或深入理解JavaScript的人来说都是至关重要的。 首先,JavaScript的基础部分包括了变量、数据类型...
3. 操作符:JavaScript支持各种操作符,如算术操作符(+,-,*,/,%)、比较操作符(==,===,<,>,,>=)和逻辑操作符(&&,||,!)。 4. 控制结构:包括条件语句(if...else,switch),循环(for,while,do.....
2. 操作符:JavaScript提供了多种操作符,包括算术操作符(+、-、*、/、%)、比较操作符(==、===、!=、!==、<、>、、>=)和逻辑操作符(&&、||、!)。正确使用这些操作符可以帮助我们进行数据处理和条件判断。 3. ...
在操作符方面,JavaScript提供了各种算术、比较和逻辑操作符。例如,算术操作符用于执行数学运算,如加减乘除;比较操作符用于比较两个值的大小,如等于(==)和全等(===);逻辑操作符用于组合条件,如与(&&)、...