*JS:短路逻辑(if的简写)

·在js中,0、""、null、false、undefiend、NAN在逻辑运算中会被判定为false。

·表达式1 && 表达式2 :
①表达式1为真时,表达式2也为真时,以表达式2的值为整个表达式的值;
②表达式1为假时,表达式2就无需判定了,以表达式1的值作为整个表达式的值;

·表达式1 || 表达式2 :
①表达式1为真时,表达式2就无需判定了,以表达式1的值作为整个表达式的值;
②表达式1为假时,表达式2为真时,以表达式2的值为整个表达式的值;

实例:

console.log("我"&&"你");    //你
console.log(false&&"你");    //false
console.log("我"&&undefined);    //undefined

console.log("我"||"你");    //我
console.log(""||"你");    //你
console.log("我"||"");    //我

转载请注明文章出处:http://www.cnblogs.com/jacksplwxy/

时间: 2024-10-27 05:22:08

*JS:短路逻辑(if的简写)的相关文章

[Python]计算闰年时候出现的and和or优先级的问题以及短路逻辑

好吧题目非常easy.可是有些细节还是挺有意思的. 题目是:计算今年是否是闰年,推断闰年条件,满足年份模400为0,或者模4为0可是模100不为0 答案是这种: import time #计算今年是否是闰年,推断闰年条件,满足年份模400为0.或者模4为0可是模100不为0 thisyear = time.localtime()[0] #获取年份 if thisyear%400==0 or thisyear%4==0 and thisyear%100<>0: print 'this year

JavaScript新手学习笔记4——我记不住的几个坑:短路逻辑、按值传递、声明提前

1.短路逻辑 逻辑运算中,如果前一个条件已经可以得出最终结论,则后续所有条件不再执行!这里的逻辑运算指的是逻辑与和逻辑或. 我们要理解逻辑与是两个条件都为真的时候,才为真,如果第一个就是假的,那么后面一个也不用执行了.逻辑非是两个条件中有一个是真,则结果为真,所以只要第一个为真,那么结果为真,后面一条语句就不用执行了.于是又如下例题: console.log(2&&3); //3 console.log(2||3); //2 console.log(0&&1); //0 c

短路逻辑

记着学习的时候,有一个超简化代码的方法,叫短路逻辑,思想是 true 就继续执行,false 就停止执行,说的可能不清晰,来看 code: var a = true; var b = false; function B(){ console.log(1); } a && B(); a && b && B(); 比起使用 if ,使用短路逻辑来做简单的判断执行方法,真的是简单而又整洁!

Python中 and or 运算顺序详解 --- 短路逻辑

核心思想 表达式从左至右运算,若 or 的左侧逻辑值为 True ,则短路 or 后所有的表达式(不管是 and 还是 or),直接输出 or 左侧表达式 . 表达式从左至右运算,若 and 的左侧逻辑值为 False ,则短路其后所有 and 表达式,直到有 or 出现,输出 and 左侧表达式到 or 的左侧,参与接下来的逻辑运算. 若 or 的左侧为 False ,或者 and 的左侧为 True 则不能使用短路逻辑. 详情参见:http://www.cnblogs.com/an9wer/

[原著]java或者Js 代码逻辑来处理 突破 oracle sql &ldquo;IN&rdquo;长度的极限的问题

注:本文出自:博主自己研究验证可行   [原著]java或者Js  代码逻辑来处理  突破 oracle  sql "IN"长度的极限的问题    在很多的时候 使用 select  *  from  tab_name t where  t.id in (1,2----1000) ;  的固定方式来查询数据的时候.会有一种这个情况出现: 则是 in 里面的内容 太长了: 而 oracle数据库支持的长度是 100个内容.          那么对于这个情况该怎么办呢.其实是很简单的,i

Python短路逻辑or的巧妙使用。

Python的中的短路逻辑我是了解一些的,就是and的时候,碰到第一个Flase后面的参数就不判断了 同理or只要碰到第一个真,后面也不判断了. 所有or就有意思了,直接上测试代码 In [147]: name = input('wirte you name: ') or "shagua" wirte you name: In [148]: name Out[148]: 'shagua' In [149]: name = input('wirte you name: ') or &qu

React-umi-request动态刷新Token功能实现及node.js 代码逻辑

在Antd-pro里面,使用的是umi-request,为了实现动态刷新token,我使用了拦截器. 拦截器更新token有两种: 方法一:在请求发起前拦截每个请求,判断token的有效时间是否已经过期,若已过期,则将请求挂起,先刷新token后再继续请求. 优点: 在请求前拦截,能节省请求,省流量. 缺点: 需要后端额外提供一个token过期时间的字段 refreshTime :使用了本地时间判断,若本地时间被篡改,特别是本地时间比服务器时间慢时,拦截会失败. 方法二:拦截返回后的数据.先发起

【pyhton】短路逻辑

编程语言常用的逻辑if a and b:#如果a是false,那么跳过b的判断,结果直接falseif a or b:#如果a为true,那么跳过b的判断,直接true

go语言学习十二 - 布尔表达式采用短路逻辑

package main import "fmt" func main() { //运行结果:a if true || b() { //go 的 if 判断采用短路求值,值已经确定后续的表达式不会计算也不会被调用 fmt.Println("a") } //运行结果:ba if or(true, b()) { //函数的参数必须被即时求值的 fmt.Println("a") } //运行结果:a if orfunc(true, b) { //传入函