泛谈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实现带单选按钮的表格行选中时高亮显示
Aug 01 Javascript
JavaScript移除数组元素减少长度的方法
Sep 05 Javascript
JavaScript必看小技巧(必看)
Jun 07 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
Jun 26 Javascript
利用JS实现文字的聚合动画效果
Jan 22 Javascript
jquery中绑定事件的异同
Feb 28 Javascript
js实现本地图片文件拖拽效果
Jul 18 Javascript
快速了解vue-cli 3.0 新特性
Feb 28 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
Mar 24 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
Sep 18 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
ElementUI 修改默认样式的几种办法(小结)
Jul 29 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代码保护--Zend Guard的使用详解
2013/06/03 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
图片上传插件jquery.uploadify详解
2013/11/15 Javascript
浮动的div自适应居中显示的js代码
2013/12/23 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
jquery仿微信聊天界面
2017/05/06 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
python算法学习之基数排序实例
2013/12/18 Python
在Windows8上的搭建Python和Django环境
2014/07/03 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
Python3.5实现的三级菜单功能示例
2019/03/25 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
python 星号(*)的多种用途
2020/09/21 Python
CSS3 按钮边框动画的实现
2020/11/12 HTML / CSS
小学教师节活动方案
2014/01/31 职场文书
《邮票齿孔的故事》教学反思
2014/02/22 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
《沉香救母》教学反思
2014/04/19 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
党风廉正建设个人工作总结
2015/03/06 职场文书
动视暴雪取消疫苗禁令 让所有员工返回线下工作
2022/04/03 其他游戏