泛谈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 相关文章推荐
关于js内存泄露的一个好例子
Dec 09 Javascript
JS实现的数组全排列输出算法
Mar 19 Javascript
js正则表达式replace替换变量方法
May 21 Javascript
javascript删除html标签函数cIsHTML
Jan 09 Javascript
Bootstrap table学习笔记(2) 前后端分页模糊查询
May 18 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
vue 动态修改a标签的样式的方法
Jan 18 Javascript
详解在React里使用"Vuex"
Apr 02 Javascript
Vue使用vue-area-linkage实现地址三级联动效果的示例
Jun 27 Javascript
layer ui 导入文件之前传入数据的实例
Sep 23 Javascript
如何在微信小程序中使用骨架屏的步骤
Jun 12 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 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
ThinkPHP之foreach标签使用概述
2014/06/30 PHP
php密码生成类实例
2014/09/24 PHP
我整理的PHP 7.0主要新特性
2016/01/07 PHP
yii2-GridView在开发中常用的功能及技巧总结
2017/01/07 PHP
laravel 字段格式化 modle 字段类型转换方法
2019/09/30 PHP
phpmyadmin在宝塔面板里进不去的解决方案
2020/07/06 PHP
Safari5中alert的无限循环BUG
2011/04/07 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
基于jquery实现控制经纬度显示地图与卫星
2013/05/20 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
jquery动态调整div大小使其宽度始终为浏览器宽度
2014/06/06 Javascript
JS+CSS实现表格高亮的方法
2015/08/05 Javascript
Node.js实现文件上传
2016/07/05 Javascript
Angular2 组件通信的实例代码
2017/06/23 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
Nodejs实现的操作MongoDB数据库功能完整示例
2019/02/02 NodeJs
用python实现批量重命名文件的代码
2012/05/25 Python
python中threading超线程用法实例分析
2015/05/16 Python
老生常谈Python基础之字符编码
2017/06/14 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Python 查找list中的某个元素的所有的下标方法
2018/06/27 Python
python简单实现最大似然估计&scipy库的使用详解
2020/04/15 Python
pycharm2020.1.2永久破解激活教程,实测有效
2020/10/29 Python
CSS3新属性transition-property transform box-shadow实例学习
2013/06/06 HTML / CSS
Hotels.com中国区:好订网
2016/08/18 全球购物
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
求职者简历中的自我评价
2013/10/20 职场文书
简历中自我评价范文3则
2013/12/14 职场文书
交通事故赔偿协议书范本
2014/04/15 职场文书
机电一体化专业求职信
2014/07/22 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
简历自我评价模板
2015/03/11 职场文书
2015年第十五个全民国防教育日宣传活动方案
2015/05/06 职场文书
户外亲子活动总结
2015/05/08 职场文书
学习焦裕禄观后感
2015/06/09 职场文书