泛谈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 相关文章推荐
JavaScript DOM 学习第三章 内容表格
Feb 19 Javascript
浅谈jQuery animate easing的具体使用方法(推荐)
Jun 17 Javascript
js判断checkbox是否选中个数的方法(超简单)
Aug 19 Javascript
jquery判断类型是不是number类型的实例代码
Oct 07 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
VUE 实现滚动监听 导航栏置顶的方法
Sep 11 Javascript
node.js使用express框架进行文件上传详解
Mar 03 Javascript
10种JavaScript最常见的错误(小结)
Jun 21 Javascript
JS数组方法slice()用法实例分析
Jan 18 Javascript
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
Jul 19 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 Javascript
Vue中引入svg图标的两种方式
Jan 14 Vue.js
了解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中文本操作的类
2007/03/17 PHP
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
php使用smtp发送支持附件的邮件示例
2014/04/13 PHP
PHP合并静态文件详解
2014/11/14 PHP
PHP实现的文件上传类与用法详解
2017/07/05 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
网页加载时页面显示进度条加载完成之后显示网页内容
2012/12/23 Javascript
jquery实现非叠加式的搜索框提示效果
2014/01/07 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
jQuery的框架介绍
2016/05/11 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
JSONP基础知识详解
2017/03/19 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
jquery手机触屏滑动拼音字母城市选择器的实例代码
2017/12/11 jQuery
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
进一步探究Python中的正则表达式
2015/04/28 Python
python实现的简单抽奖系统实例
2015/05/22 Python
读写json中文ASCII乱码问题的解决方法
2016/11/05 Python
python 实时得到cpu和内存的使用情况方法
2018/06/11 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
苹果台湾官网:Apple台湾
2019/01/05 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
班级标语大全
2014/06/21 职场文书
法人授权委托书公证范本
2014/09/14 职场文书
奖学金感谢信
2015/01/21 职场文书
学校工会工作总结2015
2015/05/19 职场文书
2016教师校本培训心得体会
2016/01/08 职场文书
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js
Hive日期格式转换方法总结
2022/06/25 数据库