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


Posted in Javascript onMay 24, 2019

前言

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

简单的测试代码

先是true与false的测试,后将false改为数值0. 除了|| 与&&之外易让人疑惑外,JS里的假值表也算是个大疑点。

let A = true;
let B = true;
testLogic(A,B); 
A = true;
B = false;
testLogic(A,B); 
A = false;
B = true;
testLogic(A,B); 
A = false; 
B = false;
testLogic(A,B); 
/*假值表,以下值 可以被强制布尔转换为false,其它转换皆为true
undefined
null
false
+0,-0,NaN
"" 空字符串
其它皆为真值,如空对象{}
*/
console.log("-----------------next test ---------------");
A = true;
B = true;
testLogic(A,B);
A = true;
B = 0;
testLogic(A,B);
A = 0;
B = true;
testLogic(A,B);
A = 0; 
B = 0;
testLogic(A,B); 
function testLogic(A,B){
 if(A || B){
 console.log("A:",A,"B:",B,".A||B true:",A || B);
 }
 else
 {
 console.log("A:",A,"B:",B,".A||B flase:",A || B);
 }
 if(A && B){
 console.log("A:",A,"B:",B,".A&&B true:",A || B);
 }
 else
 {
 console.log("A:",A,"B:",B,".A&&B flase:",A && B);
 }
}

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

我写代码时我其实就只知道如何做到if 与逻辑判断实现其它语言一样的正常的效果:

结论是保证A与B的是true或false而不是其它值。

正常语言是这样的:

A B A||B A&&B
T T T T
T F T F
F T T F
F F F F

JS语言是这样的:返回的是A或B,只要保证A与B的是true或false而不是其它值,那么在使用上与正常语言逻辑一样。

A B A||B A&&B
T T A(T) B(T)
T F A(T) B(F)
F T B(T) A(F)
F F B(F) A(F)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 图片预加载 自动等比例缩放插件
Dec 25 Javascript
javascript 学习之旅 (1)
Feb 05 Javascript
JavaScript Distilled 基础知识与函数
Apr 07 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
javascript Deferred和递归次数限制实例
Oct 21 Javascript
JavaScript中常用的六种互动方法示例
Mar 13 Javascript
JS制作手机端自适应缩放显示
Jun 11 Javascript
js ajaxfileupload.js上传报错的解决方法
May 05 Javascript
详解用vue编写弹出框组件
Jul 04 Javascript
vue导出html、word和pdf的实现代码
Jul 31 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
Aug 13 Javascript
js类的继承定义与用法分析
Jun 21 Javascript
了解JavaScript中的选择器
May 24 #Javascript
Javascript通过控制类名更改样式
May 24 #Javascript
redux.js详解及基本使用
May 24 #Javascript
javascript获取元素的计算样式
May 24 #Javascript
运用js实现图层拖拽的功能
May 24 #Javascript
了解javascript中let和var及const关键字的区别
May 24 #Javascript
如何用原生js写一个弹窗消息提醒插件
May 24 #Javascript
You might like
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
php解决约瑟夫环算法实例分析
2019/09/30 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
web页面数据展示新想法(json)
2010/06/08 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
2017/04/10 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
Python入门篇之函数
2014/10/20 Python
pyqt5 QScrollArea设置在自定义侧(任何位置)
2019/09/25 Python
opencv-python 读取图像并转换颜色空间实例
2019/12/09 Python
python 经典数字滤波实例
2019/12/16 Python
Python基于class()实现面向对象原理详解
2020/03/26 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
HTML5 history新特性pushState、replaceState及两者的区别
2015/12/26 HTML / CSS
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
一封普通求职者的求职信
2013/11/20 职场文书
承办会议欢迎词
2014/01/17 职场文书
贸易经济专业自荐书
2014/06/29 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
应聘教师自荐信
2015/03/26 职场文书
上下班时间调整通知
2015/04/23 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
tensorflow+k-means聚类简单实现猫狗图像分类的方法
2021/04/28 Python
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python
浅谈spring boot使用thymeleaf版本的问题
2021/08/04 Java/Android
python中urllib包的网络请求教程
2022/04/19 Python
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电