2016.7.29 短路运算(逻辑运算是短路运算中最常见的一种)

写在前面的知识:

Boolean强制转换:

除了NaN、null、""、undefined、0、function这几个为false外,其他皆为true;

关于转换,等会我会再写一篇,专门讲string、int、Boolean转换。

短路运算的符号:    ||   &&  !  或与非

短路运算的原理:当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;

短路运算的规则:

&& 找假,先看第一个表达式的值,如果第一个表达式不是布尔类型,强制转换成布尔类型,转换若后为false,则返回第一个值(不是被强制转换后的值),否则返回第二个值

||   找真,先看第一个表达式的值,如果第一个表达式不是布尔类型,强制转换成布尔类型,转换若后为true,则返回第一个值(不是被强制转换后的值),否则返回第二个值

!  非,   看表达式的值,如果表达式的值不是布尔类型,强制转换成布尔类型,若为true,则返回false,否则返回true。

短路运算的例子:

javascript代码:

<script>
        console.log("短路运算的&和|只比较第一个表达式,并由第一个表达式和运算符号决定返回哪个值");
        console.log("&&测试");
        console.log("&&找假");
        console.log(true&&true);
        console.log(true&&false);
        console.log(false&&true);
        console.log(false&&false);
        console.log(true&&"abs");//直接显示第二个表达式的值abs
        console.log(false&&"abs");//直接显示第一个表达式的值false
        console.log(""&&"abs");//什么都没显示,因为第一个表达式经Boolean强制转换后是false,所以显示第一个值
        console.log("abs"&&"qwe");//直接显示qwe

        console.log("||测试");
        console.log("||找真");
        console.log(true||true);
        console.log(true||false);
        console.log(false||true);
        console.log(false||false);
        console.log(true||"abs");//直接显示true
        console.log(false||"abs");//直接显示abs
        console.log(""||"abs");//显示abs
        console.log("abs"||"qwe");//显示abs

        console.log("!测试");
        console.log(!true);
        console.log(!false);
        console.log(!"abs");//字符串abs经boolean强制转换后是true,!true是false
        console.log(!"");//字符串经boolean强制转换后是false, !false是true
</script>

控制台截图:

                

时间: 2024-10-15 09:36:16

2016.7.29 短路运算(逻辑运算是短路运算中最常见的一种)的相关文章

【我的书】Unity Shader的书 — 目录(2016.1.29更新)

写在前面 感谢所有点进来看的朋友.没错,我目前打算写一本关于Unity Shader的书. 出书的目的有下面几个: 总结我接触Unity Shader以来的历程,给其他人一个借鉴.我非常明白学Shader的艰难,在群里也见了很多人提出的问题.我觉得学习Shader还是一件有规律可循的事情,但问题是中文资料难觅,而大家又不愿意去看英文...这对我有什么好处呢?强迫我对知识进行梳理,对细节问题把握更清楚. 第二个原因你懂的. 关于本书的定位问题: 面向Unity Shader初学者,但要: 有一定的

”耐撕“团队 2016.3.29 站立会议

”耐撕“团队 2016.3.29 站立会议 1. 时间:20:33--21:05 2. 成员: Z 郑蕊 * 组长 (博客:http://www.cnblogs.com/zhengrui0452/), P 濮成林(博客:http://www.cnblogs.com/charliePU/), Q 齐嘉亮(博客:http://www.cnblogs.com/dendroaspis-polylepis/), L  刘伟硕(博客:http://www.cnblogs.com/WeSure6/) 3.会议

(笔试题)只用逻辑运算实现加法运算

题目: 如题所示 思路: 逻辑运算,即二进制运算,无外乎与&.或|.非~.异或^以及移位>>,<<等操作: 而加法运算,在十进制中,只有按位相加以及进位两个操作. 从二进制角度也一样,就是bit位相加,加上相应的进位. 1.bit位相加,通过逻辑运算的异或操作可以实现,如0+1=1,1+0=1,0+0=0: 2.进位运算,通过逻辑运算的与操作可以实现,如1+1=1,因为进位是往高位+1,因此需要将进位结果左移一位. 将上述两个操作再做加法运算,就是加法运算的结果,这是一个递

软件工程 2016.6.29 日报

软件工程 2016.6.29 日报 今天我的主要工作就是调查了解我校的加权平均分计算方法,并将程序加权计算部分予以修正. 通过查阅北工大教务公示,获得信息: 第十条学校利用“学分通过率”和“加权平均分”作为衡量学生在校期间学习质量的主要指标.辅修课程.创新学分和第二课堂的学分和成绩不计入学分通过率和加权平均分的计算.创新学分和第二课堂是学生获得毕业资格的必要条件.理工类专业学生应修不少于4学分的创新学分,其他专业应修不少于2学分的创新学分.第二课堂应修满12学分. 同时,通过询问同学获取了在教务

[原创] Easy SysLite V1.2 (2016.5.29更新,新增加WIN10支持,一个程序适配所有系统减肥)

nohacks 发表于 2016-5-29 17:12:51 https://www.itsk.com/thread-367736-1-8.html 原因是新版的 SkyIAR.Easy Image X会验证自身程序,防止被窜改,PE缺少验证SHA1的DLL解决办法把 RSAENH.DLL 文件 RSAENH.7z (60.85 KB, 下载次数: 978) 2013-1-26 11:50 上传点击文件名下载附件 下载积分: 活跃 -3 点 或者自己到XP系统SYSTEM32里提取,复制到PE核

java学习第13天( java获取当前时间,有关大数据的运算及精确数字运算,Date类)

一 java获取当前时间 学习一个函数,得到当前时间的准确值 System.currectTimeMillis(). 可以得到以毫秒为单位的当前时间.它主要用于计算程序运行时间,long start=System.currectTimeMillis() ,long stop=System.currectTimeMillis() , stop-start; 二  有关大数据的运算及精确数字运算. 此时integer不适用.我们使用BigInteger ,如:BigInteger B= new Bi

编程题:自增运算与自减运算的运用

#include<stdio.h> void main() {int a1,a2,a3,a4,b1,b2,b3,b4; a1=a2=a3=a4=10; b1=(a1++)+(a1++)+(a1++); b2=(++a2)+(++a2)+(++a2); b3=(a3--)+(a3--)+(a3--); b4=(--a4)+(--a4)+(--a4); printf("a1=%d,a2=%d,b1=%d,b2=%d\n",a1,a2,b1,b2); printf("a

Java位运算总结:位运算用途广泛《转》

前天几天研究了下JDK的Collection接口,本来准备接着研究Map接口,可是一查看HashMap类源码傻眼咯,到处是位运算实现,所以我觉得还是有必要先补补位运算知识,不然代码看起来有点费力.今天系统研究了下,现记录如下. 首先要明白一个概念,Java位运算是针对于整型数据类型的二进制进行的移位操作.主要包括位与.位或.位非,有符号左移.有符号右移,无符号右移等等.需要注意一点的是,不存在无符号左移<<<运算符.根据位运算的概念规定,我们首先需要弄明白两个问题,java有哪些数据类型

[转]取模运算和求余运算的区别

[转]取模运算和求余运算的区别 通常情况下取模运算(mod)和求余(rem)运算被混为一谈,因为在大多数的编程语言里,都用'%'符号表示取模或者求余运算.在这里要提醒大家要十分注意当前环境下'%'运算符的具体意义,因为在有负数存在的情况下,两者的结果是不一样的. 对于整型数a,b来说,取模运算或者求余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余数: r = a - c*b. 通常常用的是正数之间取模或求余.下面的可以先不关心. —————————————————————