JS 中的布尔运算符 && 和 ||

布尔运算符 && 和 ||的返回结果不一定是布尔值!由此来展开一定的研究及理解。

1.首先先介绍下常见的数据类型转化为bool后的值。

(常用地方)在if表达式中,javascript先把条件表达式转换成bool值再进行判断

2.下面来介绍下逻辑与&& 逻辑非|| 的运算后的返回结果

逻辑与 &&

var i="真值" && "任意值" ;=> i结果为任意值

var i="假值" &&  "任意值"; => i 结果为左侧假值  //假值包括 null false 0 undefined 空字符串

逻辑或 ||

var i="真值" || "任意值" ;=> i结果为’真值’ //真值包括 object  function 0之外的数字 字符串

var i="假值" ||  "任意值"; => i 结果为‘任意值’  

下面给个示例::

3.逻辑与&&和逻辑或||都属于短路操作。

什么叫做短路操作呢,即如果第一个操作数能够决定结果,那么就不会再对第二个操作数求值。

var found = true;
var result = (found && someUndefineVariable); //这里会发生错误
 alert (result); //这里不会执行

在上面代码中,当执行逻辑与操作时会发生错误,因为变量someUndefineVariable没有声明,由于found为true,所以逻辑与会对变量someUndefineVariable求值,由于someUndefineVariable没定义,所以会报错,如果found为false的话,则不会对someUndefineVariable进行求值,就有输出结果。  (ps不能再逻辑与中使用未定义的值)。逻辑非||也与逻辑与&&类似,当左侧表达式为 真值时,则不对右侧表达式进行求值。

综上:  在循环的时候 选择 if...else ....     三目运算符, 还是这种逻辑运算符有没有更加有心得呢

原文地址:https://www.cnblogs.com/chase-star/p/10259453.html

时间: 2024-08-29 23:35:13

JS 中的布尔运算符 && 和 ||的相关文章

js中的instanceof运算符

js中的instanceof运算符 概述 instanceof运算符用来判断一个构造函数的prototype属性所指向的对象是否存在另外一个要检测对象的原型链上 语法 obj instanceof Object;//true 实例obj在不在Object构造函数中 描述 instanceof 运算符用来检测 constructor.prototype 是否存在于参数 object 的原型链上. 实例 1.instanceof的普通的用法,obj instanceof Object 检测Objec

javaScript 中的布尔运算符 && 和 ||

布尔运算符 && 和 ||的返回结果不一定是布尔值!由此来展开一定的研究及理解. 1.首先先介绍下常见的数据类型转化为bool后的值. (常用地方)在if表达式中,javascript先把条件表达式转换成bool值再进行判断 2.下面来介绍下逻辑与&& 逻辑非|| 的运算后的返回结果 逻辑与 && 由上面结果可以看出.逻辑与&&中,当左侧表达式为 真值,结果则返回右侧表达式:当左侧表达式为 假值,结果则返回左侧表达式: 也就是 var i=&

字符串0.在php和js中转换为布尔类型 值是false还是true

在php 中 $a = '0'; $b = (bool)$a; var_dump($a);//输出false 在js中官方说明: Note:If the value parameter is omitted, or is 0, -0, null, , false, undefined, or NaN, the object is set to false. Otherwise it is set to true (even with the string false)! 测试: <script 

JS中的加号+运算符详解

加号+运算符 在 JavaScript 中,加法的规则其实很简单,只有两种情况: 把数字和数字相加 把字符串和字符串相加 所有其他类型的值都会被自动转换成这两种类型的值. 为了能够弄明白这种隐式转换是如何进行的,我们首先需要搞懂一些基础知识. 让我们快速的复习一下. 在 JavaScript 中,一共有两种类型的值: 原始值(primitives) undefined null boolean number string 对象值(objects):除了原始值外,其他的所有值都是对象类型的值,包括

关于C# 中的布尔运算符 &quot;&amp;&quot; &quot;|” 与 其类似的条件布尔运算符 &quot;&amp;&amp;&quot; &quot;||&quot; 区别说明。

运算符使用说明如下:  分隔符 ---------------------------- 分隔符 ---------------------------- 上述两个运算符的结果与&和 | 完全相同,但得到结果的方式有一个重要区别:其性能比较好.两者都是检查第一个操作数的值(表2中的var2),再根据该操作数的值进行操作,可能根本就不处理 第二个操作数(表42中的var3). 如果&&运算符的第一个操作数是 false,就不需要考虑第二个操作数的值了,因为无论第二个操作数的值是什么,

JS中关于in运算符的问题

转自:http://bbs.bccn.net/thread-412608-1-1.html in运算符 in运算符虽然也是一个二元运算符,但是对运算符左右两个操作数的要求比较严格.in运算符要求第1个(左边的)操作数必须是字符串类型或可以转换为字符串类型的其他类型,而第2个(右边的)操作数必须是数组或对象.只有第1个操作数的值是第2个操作数的属性名,才会返回true,否则返回false. 简单通俗的in的使用规范代码: <html> <head> <title>in运算

js中的 || 与 &amp;&amp; 运算符 的使用

&&和||总是傻傻分不清,在这里详细记录一下吧.也给你们分享一下. 表达式a && 表达式b :  计算表达式(或者函数)a的运算结果, 如果为 True, 执行表达式b(或函数),并返回b的结果: 如果为 False,返回a的结果: 表达式a || 表达式b :    计算表达式(或者函数)a的运算结果, 如果为 Fasle, 执行表达式b(或函数),并返回b的结果: 如果为 True,返回a的结果: 简而言之, &&的计算为前面为true就返回后边,前面

js中的三元运算符? :

//快速设置表单底部默认的按钮:保存.取消 LG.setFormDefaultBtn = function (cancleCallback, savedCallback) { //表单底部按钮 var buttons = []; if (cancleCallback) { buttons.push({ text: '取消', onclick: cancleCallback }); } if (savedCallback) { buttons.push({ text: '保存', onclick:

关于JS中涉及的常用类型转换及运算符表达式

JS中的常用类型转换(一般用强制转换):1.强制转为整数:parseInt:写法:x = parseInt(x); 2.强制转换位小为:parseFloat:写法:x = parseFloat(x); 3.检测类型:x = parseInt(x);       alert(typeof(true)); JS中常用的运算符表达式:1.逻辑运算符(布尔型):&& 并 :|| 或 :! 非 : 2.比较运算符:==(等于) :!=(不等于) : > :< :>=(大于等于) :