js中的逻辑或和逻辑与

a=‘‘||‘abc‘;                              //返回什么?  ‘abc‘

a=1||2;                                  //返回什么?   1

var a=0; var b=++a||++a ;        //a=1;b=1;

b=‘‘&&‘abc‘                             //返回什么?  ’‘

b=1&&2                                 //返回什么?   2

var a=0; var b=++a&&++a ;      //a=2;b=2;

开始我还以为只会返回false或true。

规则就是:

||:  从左到右运算其中的表达式,直到遇到表达式为true,则直接返回这个表达式,后面的表达式不再运算;一直都没遇到,则返回最后那个表达式。

&&:从左到右运算其中的表达式,直到遇到表达式为false,则直接返回这个表达式,后面的表达式不再运算;一直都没遇到,则返回最后那个表达式。

这两种操作符属于短路操作符,只要已经得出最终结果了,就不再继续计算下去。

js中的逻辑或和逻辑与

时间: 2024-08-25 05:54:24

js中的逻辑或和逻辑与的相关文章

讲讲js中的逻辑与(&&)以及逻辑或(||)

前几天看到一个函数,百思不得其解,今天早上醒来看了本js的书,正好讲到操作符的用法,给大家分享下js中的&&,||,和我们用的其他的编程语言还是有点区别的. 直接上那个函数的代码: function whatDoesItDo(mood){ return mood && "I like this" || "I don't like this"; } 当我们给mood赋值true其显示"I like this"(A来代

js 中 0 和 null 、"" 的逻辑关系

在做字符串非空判断时,无意发现一个问题,记录下以便以后回顾. 问题描述:非空判断,只是校验传值的内容是否为"".null .undefined.当变量 赋值的字符串内容为 0,此时做非空校验竟然返回true,说当前变量值为空. 代码如下: 1 //模拟赋值 0 2 var str = "0"; 3 4 /** 5 * 判断字符是否为空的方法 6 * 为空 返回 true 7 * 不为空返回 false 8 * @param {Object} obj 9 */ 10

js中的逻辑与(&&)和逻辑或(||)

之前有一个同事去面试,面试过程中碰到这样一个问题: 在js中写出如下的答案 : var a = 2; var b = 3; var andflag = a && b ; var orflag = a || b; 问andflag 和orflag 分别是什么? 起初我认为: andflag 和orflag 的值都为 true; 毕竟 && 和 || 都是求Boolean ,后来发现,我错了. 答案应该是  andflag  = 3,orflag = 2; 原因是这样的: 在运

ASP.NET中登录功能的简单逻辑设计

 ASP.NET中登录功能的简单逻辑设计                               概述                               逻辑设计                               1.接收参数                               2.判断参数合法性                               3.访问数据库                               4.保存Session     

【JavaScript】JavaScript赋值语句中的逻辑与&&和逻辑或||

在其他语言中,我们往往看到逻辑符号出现在判断语句当中,如 if(a||b){} 但在一些js相关的面试题或者书中,我们有时会看到逻辑与&&和逻辑或||符号出现在赋值语句或者返回语句中,如 var x=a||b; return a&&b||c; 第一次看到时,我们很可能一头雾水,这是怎么回事? 因为在js中允许使用表达式赋值,所得的值为该表达式的运算结果.如 var a= 5; var b= 6; var c= a+b; a= 10; console.log(c);//11

js 非布尔值操作 逻辑与 和 逻辑或*

/*js 非布尔值操作 逻辑与 和 逻辑或*//* * 注:( "" , 0 ,undefined ,NaN ,null 转换为 false) * *//*逻辑与*/console.log(( 1 && 1 && "hello" && 2 && 3 && 4 )); // 第一个转换为true 返回 最后一个值 (4)console.log(( 0 && 0 &&

WPF中异步更新Command可用逻辑时按钮状态没有更新

在这样一种场景,通过点击一个按钮来执行一段耗时的逻辑,在这段逻辑执行完时设置另外一个按钮的可用状态,通过CanExecuted影响.示例如下: 其中,扫行逻辑的代码如下: private ICommand _setWaitCommandExecuted; public ICommand SetWaitCommandExecuted { get { if (null == _setWaitCommandExecuted) _setWaitCommandExecuted = new RelayCom

PHP中递归函数的一个常见逻辑问题

首先,我们得知道递归函数是什么东西,通俗来讲也就是自己调用自己本身的函数. 现在需要设计一段代码,解决1到10叠加的问题. 代码A: <?php //递归函数 $num=10; function add($sum){ static $tot; if($sum>=1){ $tot+=$sum; add(--$sum); }else{ return $tot; } } echo add($num); ?> 代码B: <?php //递归函数 $num=10; function add(

MVC在基控制器中实现处理Session的逻辑

当需要跨页面共享信息的时候,Session是首当其冲的选择,最典型的例子就是:在处理登录和购物车逻辑的时候需要用到Session.在MVC中,可以把处理Session的逻辑放在一个泛型基控制器中,但需要注意的是:在判断没有登录就跳转到登录页的时候,需要把出错控制器和登录控制器排除在外. using System.Collections.Generic; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplication