泛谈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扩展插件Validate 3通过参数设置错误信息
Sep 05 Javascript
JavaScript实现自己的DOM选择器原理及代码
Mar 04 Javascript
js用闭包遍历树状数组的方法
Mar 19 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
Jan 13 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
JS中的作用域链
Mar 01 Javascript
深入剖析Node.js cluster模块
May 23 Javascript
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
原生JS+HTML5实现的可调节写字板功能示例
Aug 30 Javascript
React Native开发封装Toast与加载Loading组件示例
Sep 08 Javascript
antd日期选择器禁止选择当天之前的时间操作
Oct 29 Javascript
vue的webcamjs集成方式
Nov 16 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
TNC vs RR BO3 第一场 2.14
2021/03/10 DOTA
js直接编辑当前cookie的脚本
2008/09/14 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
Jquery插件easyUi表单验证提交(示例代码)
2013/12/30 Javascript
通过Javascript读取本地Excel文件内容的代码示例
2014/04/08 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
微信小程序  modal弹框组件详解
2016/10/27 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
python多进程实现进程间通信实例
2017/11/24 Python
详解Python中的动态属性和特性
2018/04/07 Python
详解Python中打乱列表顺序random.shuffle()的使用方法
2019/11/11 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
香港时尚女装购物网站:ZAFUL
2017/07/19 全球购物
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
开展批评与自我批评发言稿
2014/10/16 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
捐助感谢信
2015/01/22 职场文书
暑假安全保证书
2015/02/28 职场文书
民政工作个人总结
2015/02/28 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书
Mysql中mvcc各场景理解应用
2022/08/05 MySQL