泛谈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中的end()使用方法
Jul 10 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
JavaScript中如何通过arguments对象实现对象的重载
May 12 Javascript
js格式化时间小结
Nov 03 Javascript
javascript简单实现图片预加载
Dec 03 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
Mar 25 Javascript
整理JavaScript创建对象的八种方法
Nov 03 Javascript
JQuery点击行tr实现checkBox选中的简单实例
May 26 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
Javascript执行流程细节原理解析
May 14 Javascript
js和jquery判断数据类型的4种方法总结
Aug 28 jQuery
了解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
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
无限级别菜单的实现
2006/10/09 PHP
PHP数字格式化
2006/12/06 PHP
PHP中替换换行符的几种方法小结
2012/10/15 PHP
php的hash算法介绍
2014/02/13 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
jQuery 常见开发使用技巧总结
2009/12/26 Javascript
让mayfish支持mysqli数据库驱动的实现方法
2010/05/22 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
详解基于vue-cli3.0如何构建功能完善的前端架子
2018/10/09 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
2019/10/11 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
解决vue单页面应用进入页面加载所有 js 的问题
2020/08/12 Javascript
用python实现批量重命名文件的代码
2012/05/25 Python
DJANGO-ALLAUTH社交用户系统的安装配置
2014/11/18 Python
Python中的日期时间处理详解
2016/11/17 Python
Python调用adb命令实现对多台设备同时进行reboot的方法
2018/10/15 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
英国布鲁姆精品店:Bloom Boutique
2018/03/01 全球购物
查询优化的一般准则有哪些
2015/03/08 面试题
求职简历自荐信
2014/06/18 职场文书
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫
Python实现信息管理系统
2022/06/05 Python