泛谈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的让页面控件不可用的实现代码
Apr 27 Javascript
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
Sep 12 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
Nov 06 Javascript
React Native 集成jpush-react-native的示例代码
Aug 16 Javascript
vue父组件点击触发子组件事件的实例讲解
Feb 08 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
Jun 26 Javascript
react native 原生模块桥接的简单说明小结
Feb 26 Javascript
vue中typescript装饰器的使用方法超实用教程
Jun 17 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
微信小程序单选框自定义赋值
May 26 Javascript
vue离开当前页面触发的函数代码
Sep 01 Javascript
微信小程序实现翻牌抽奖动画
Sep 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一个找二层目录的小东东
2012/08/02 PHP
用php来改写404错误页让你的页面更友好
2013/01/24 PHP
ThinkPHP CURD方法之page方法详解
2014/06/18 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
PHP实现的折半查询算法示例
2017/10/09 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
Domino中运用jQuery读取视图内容的方法
2009/10/21 Javascript
JavaScript 大数据相加的问题
2011/08/03 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
Javascript之Date对象详解
2016/06/07 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Vue异步组件使用详解
2017/04/08 Javascript
jquery实现图片跟随鼠标的实例
2017/10/17 jQuery
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
使用tensorflow实现AlexNet
2017/11/20 Python
Python requests模块实例用法
2019/02/11 Python
对Python3使运行暂停的方法详解
2019/02/18 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
企业总经理职责
2014/02/02 职场文书
趣味比赛活动方案
2014/02/15 职场文书
小学生常见病防治方案
2014/06/06 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
党员个人总结范文
2015/02/14 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
管辖权异议上诉状
2015/05/23 职场文书
中学教代会开幕词
2016/03/04 职场文书