`

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

阅读更多

 

该文属于原创,原文出自http://www.pm-road.com/index.php/2014/09/13/102/

之前有一个同事去面试,面试过程中碰到这样一个问题:

在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;

原因是这样的:

在运算过程中,首先js  会将 && 和||  两边的值转成Boolean 类型,然后再算值 ,&&运算如果返回true,则取后面的值,如果|| 返回true,则取前面的值 , 而其中数值转换成boolean 的规则 是:

对象、非零整数、非空字符串返回true,

其它为false   ;

a && b  的运算就是  :因为  a  和  b全是非零整数,所以  a  和  b  也就是true ,而   true && true  返回   true   ,则取后面的b   ,同理  a 和b 全是非零整数,a  和b  全是true  ,则true || true  返回   true ,取|| 前面的值 也就是2;

 

同样:该逻辑运算符支持短路原则:

如 var  a = “”  ||  null  || 3  ||  4   —->    var a = fasel || false || true ||  true  结果为true  则返回第一个true,即是3

var b = 4 && 5 && null && 0   ——>   var b = true && true && false && false   结果是false   则返回第一个false   即是null .

分享到:
评论

相关推荐

    老生常谈javascript中逻辑运算符&&和||的返回值问题

    今天在做逻辑运算符的时候遇到一个小问题一直转不过弯来,var a=(undefined&&123)||(3||5)的返回值是什么? 首先是||的返回值问题: ||的返回值会返回最早遇到非以下类型的值: NaN null undefined 0 false; 所以3||...

    JavaScript中的逻辑判断符&&、||与!介绍

    与C、Java不同的是,JavaScript中逻辑与(&&)和逻辑或(||)操作符可以应用在任何值上,而操作结束后返回的也不一定是boolean值。 逻辑与&&的处理规则 JavaScript中&&的处理规则是这样的: 1.判断第一个值是否为Falsy。...

    js中的 || 与 && 运算符详解

    js中逻辑运算符在开发中可以算是比较常见的运算符了,主要有三种:逻辑与&&、逻辑或||和逻辑非!。 当&&和|| 连接语句时,两边的语句会转化为布尔类型(Boolean),然后再进行运算,具体的运算规则如下: 1.&& 1.1...

    泛谈JS逻辑判断选择器 || &&

    || 与 &&在JS里与其它语言不一样,这是选择器运算符,而非逻辑运算符。 对于||来说,若判断为true,则返回第一个值,为false返回第二个值。 &&相反,若判断为 true,则返回第二个,为 false为返回第一个值。 绝对不是...

    javascript中 逻辑与或非和按位与或非的区别

    按位与或非和逻辑与或非的区别 定义: 按位与或非是对计算机位的操作,属于计算机二进制运算的操作。——位操作符 逻辑与或非是对boolean(布尔)值的操作。——布尔操作符 操作符: 按位 与(&) 或(|) 非(~)...

    浅谈JS运算符&&和|| 及其优先级|javascript-212853.pdf

    今天看了一段YUI compressor压缩的js代码: userNum && (ind += index,ind >= userNum && (ind -= ...&& (逻辑与) 这里主要是一个“&&”运算,首先要搞懂这个,看一个简单的例子: 1 var a = 1 && 2 && 3;//3 

    浅谈javascript中的 “ && ” 和 “ || ”|javascript-64438.pdf

    有时候,我们会在jQuery框架或者其他js插件中发现里面有很多 “ && ” 和 “ || ”,那么这两个标识到底是什么含义?怎么使用?我觉得还是有必要稍微深究一下。 一、原理: && 操作符特点:逻辑运算表达式中只要一个...

    js逻辑结构的逻辑分支

    js的逻辑分支,1.程序的三大结构,顺序结构 逻辑结构 循环结构 这是逻辑结构里面的逻辑分支

    全面解析JavaScript中“&&”和“||”操作符(总结篇)

    1、||(逻辑或), 从字面上来说,只有前后都是false的时候才返回false,否则返回true。 alert(true||false); // true alert(false||true); // true alert(true||true); // true alert(...

    JavaScript逻辑运算符相关总结

    关于 JavaScript 中的逻辑运算符,我们经常使用却可能不知道它的一些机制和用法。 机制 首先我们需要知道几种逻辑运算符的优先级是不同的(关于完整的运算符优先级,看运算符优先级),逻辑非>逻辑与>逻辑或>条件...

    微信包含视图(wxml和wxss)和逻辑(js)的组件优化实例.rar

    微信包含视图(wxml和wxss)和逻辑(js)的组件优化实例,微信小程序组件优化方案的演示源代码,做法分三步:  - 子组件的wxml作为模板include到父容器中  - 子组件的wxss import到父容器的wxss中  - 把父容器的...

    JS中的逻辑运算详解(神奇的js逻辑运算)

    有时候,在别人的js函数写法中,会有function(){ a && b;},开始百思不得其解,后来查了下资料,觉得很意思。 实际上这个函数这样的写法是代替了if语句,如果b是一个执行方法或者语句,那么看a...逻辑或和它正相反。

    JS逻辑判断型函数.ktr

    kettle JavaScript代码 逻辑判断型函数

    useragent解析逻辑&手机品牌匹配.txt

    在对浏览界面进行解析获取用户信息的过程中,想要精准识别用户,对useragent解析&手机品牌匹配是必不可少的环节,本文档提供了解析逻辑,以及提供了最新的手机品牌和useragent对应的文件,帮你丰富用户画像,以及...

    短路逻辑笔试题.docx

    JS基础:短路逻辑笔试题:alert(0&&2) alert(1&&2) alert(0||2) alert(1||2)

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

    ’、逻辑与’&&’、逻辑或’||’3种,本文将介绍这三种逻辑运算符 逻辑非 逻辑非操作符由一个叹号(!)表示,可以应用于ECMAScript中的任何值。无论这个值是什么数据类型,这个操作符都会返回一个布尔值。逻辑非操作...

    JS逻辑运算符短路操作实例分析

    、逻辑与&&、逻辑或||。 所谓短路操作就是,当&&的第一个操作数的值是false时,直接返回第一个操作数的值,不再对第二个操作数进行计算; [removed] var bar1 = 0&&c; console.log('bar1====='+bar1); //bar1=====0...

Global site tag (gtag.js) - Google Analytics