时间:2021-05-18
先说逻辑与(&&),它可以从三个层次进行理解
第一个层次最简单,就是简单的布尔值之间的逻辑与,就是左值和右值都是true时,返回true,两边都是false或者两边的值其中一边是fasle,就返回false;(AND操作);
第二个层次,(false,null,indefined,0,-0,NaN和""这些都是假值,其他所有的值包括对象都是真值),对这些"真值"和"假值"进行AND操作,返回一个"真值"或者"假值";
值得注意的是,(&&)并不返回一直的是布尔值,他会返回第二个层次出现的真值或者假值,,但是这些"真值"和"假值"到底是什么值呢?所以引入第三层的理解
第三个层次的理解,其实也简单,当语句中的左操作数是假值时,就不对语句的右操作数进行运算了,直接返回左操作数作为表达式的运算结果;当左操作数是真值时,将右操作数的值返回,作为表达式的运算结果,
举个例子如下:
var o={s:1}; //创建一个对象 var p=null; //创建了一个null o&&o.s //返回1,应为o是真值,所以返回o.s的值 p&&p.x //返回null,应为p是假值,所以不去计算p.x,直接返回p的值 <BR>o&&o.b; //这样会抛出一个类型错误异常,因为o为真值,需要返回o.b,但是o.b并不存在,这样就好理解了
虽然&&可以用来返回真值和假值,但是大多数情况下,真值就是true,假值就是false;
再说一下逻辑或(||),举一反三,逻辑与也有与逻辑或类似的三个层次理解,就不详细写了
逻辑与最常用的方法是从一群备选的操作数中选出一个真值的表达式
举个例子
var min =min_value||sum.min_value||100;先找到min_value,如果它没有定义,那就在sum对象中查找,如果还没有,只能给它赋值一个死值100,
这种方法通常用在函数中给参数设置默认值
举个例子
function add(a,b){ b=b||0; return a+b; }当不对b设置初始值时,b等于0;add函数返回的就是a+0,也就是a的值;
逻辑非(!)
他的目的是将操作数的布尔值进行求反,例如:如果x是真值,!x返回false,如果x是假值,!x返回true。
返回布尔值时,已经将这些真值啊,假值啊转换成了布尔值,再对其进行求反。
这里介绍一种!的常见用法
有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,就使用!!,
例如,检测一个从一个函数返回的值student是否是个有效值,就使用 !!student,如果他返回是true,那么他就是一个有效值。
以上这篇深入理解逻辑表达式的用法 与或非的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
下面列出Python正则表达式的几种匹配用法:1.测试正则表达式是否匹配字符串的全部或部分regex=ur""#正则表达式ifre.search(regex,s
深入理解JS正则表达式---分组之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着
本文实例总结了C语言递归操作用法。分享给大家供大家参考,具体如下:用归纳法来理解递归步进表达式:问题蜕变成子问题的表达式结束条件:什么时候可以不再是用步进表达式
本文实例讲述了Python爬虫之正则表达式基本用法。分享给大家供大家参考,具体如下:一、简介正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规
本文实例讲述了JS正则表达式常见函数与用法。分享给大家供大家参考,具体如下:search()使用正则表达式//使用正则表达式搜索"Runoob"字符串,且不区分