泛谈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 相关文章推荐
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
Sep 19 Javascript
javascript与webservice的通信实现代码
Dec 25 Javascript
JS简单实现登陆验证附效果图
Nov 19 Javascript
Bootstrap基本组件学习笔记之列表组(11)
Dec 07 Javascript
JavaScript日期选择功能示例
Jan 16 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
Jun 12 jQuery
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
Sep 05 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
Oct 21 Javascript
vue路由缓存的几种实现方式小结
Feb 02 Javascript
在vue中实现echarts随窗体变化
Jul 27 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计算到指定日期还有多少天的方法
2015/04/14 PHP
PHP如何使用Memcached
2016/04/05 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
Laravel框架模板继承操作示例
2018/06/11 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
JQuery性能优化的几点建议
2014/05/14 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
易被忽视的js事件问题总结
2016/05/14 Javascript
js运动事件函数详解
2016/10/21 Javascript
jQuery内容筛选选择器实例代码
2017/02/06 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
浅谈Node.js爬虫之网页请求模块
2018/01/11 Javascript
vue页面跳转后返回原页面初始位置方法
2018/02/11 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
解决Antd 里面的select 选择框联动触发的问题
2020/10/24 Javascript
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
python实现录音小程序
2020/10/26 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
实例详解Python模块decimal
2019/06/26 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
CSS3 边框效果
2019/11/04 HTML / CSS
html5绘制时钟动画
2014/12/15 HTML / CSS
英语系本科生个人求职信
2013/09/21 职场文书
冰淇淋店的创业计划书
2014/02/07 职场文书
2014年公司迎新年活动方案
2014/02/24 职场文书
人事部经理岗位职责
2014/03/07 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python