泛谈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 相关文章推荐
LazyLoad 延迟加载(按需加载)
May 31 Javascript
Jquery倒数计时按钮setTimeout的实例代码
Jul 04 Javascript
使用jQuery时Form表单元素ID和name命名大忌
Mar 06 Javascript
js滑动提示效果代码分享
Mar 10 Javascript
浅析创建javascript对象的方法
May 13 Javascript
jquery输入数字随机抽奖特效的简单实现代码
Jun 10 Javascript
Vue.js -- 过滤器使用总结
Feb 18 Javascript
JQuery form表单提交前验证单选框是否选中、删除记录时验证经验总结(整理)
Jun 09 jQuery
JS判断微信扫码的方法
Aug 07 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
浅析js中mvvm模式实现的原理
Oct 06 Javascript
python虚拟环境 virtualenv的简单使用
Jan 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
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
无限树Jquery插件zTree的常用功能特性总结
2014/09/11 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
JavaScript实现鼠标点击后层展开效果的方法
2015/05/13 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
一个超简单的jQuery回调函数例子(分享)
2016/08/08 Javascript
jQuery为DOM动态追加事件的方法
2017/02/16 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
nodeJs爬虫的技术点总结
2018/05/13 NodeJs
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
vue实现计算器功能
2020/02/22 Javascript
基于JavaScript实现十五拼图代码实例
2020/04/26 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
[01:52]2020年DOTA2 TI10夏季活动预告片
2020/07/15 DOTA
python基础教程之Filter使用方法
2017/01/17 Python
Python实现按当前日期(年、月、日)创建多级目录的方法
2018/04/26 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
Python实现不规则图形填充的思路
2020/02/02 Python
解决使用Pandas 读取超过65536行的Excel文件问题
2020/11/10 Python
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
毕业自荐信
2013/12/16 职场文书
校庆接待方案
2014/03/18 职场文书
2014年庆祝国庆65周年演讲稿
2014/09/21 职场文书
单位委托函范文
2015/01/29 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
保研推荐信范文
2015/03/25 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
企业财务管理制度范本
2015/08/04 职场文书
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫