深入理解逻辑表达式的用法 与或非的用法

 更新时间:2016年06月06日 14:44:38   投稿:jingxian  
下面小编就为大家带来一篇深入理解逻辑表达式的用法 与或非的用法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

先说逻辑与(&&),它可以从三个层次进行理解

第一个层次最简单,就是简单的布尔值之间的逻辑与,就是左值和右值都是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,那么他就是一个有效值。

以上这篇深入理解逻辑表达式的用法 与或非的用法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • JavaScript程序中的流程控制语句用法总结

    JavaScript程序中的流程控制语句用法总结

    条件判断和循环是程序中的基本执行流程控制方式,这里我们落实到具体语句,来看一下JavaScript程序中的流程控制语句用法总结
    2016-05-05
  • JavaScript中length属性的使用方法

    JavaScript中length属性的使用方法

    这篇文章主要介绍了JavaScript中length属性的使用方法,是JS入门学习中的基础知识,需要的朋友可以参考下
    2015-06-06
  • javascript数组定义的几种方法

    javascript数组定义的几种方法

    这篇文章主要介绍了javascript数组定义的几种方法,一般来说分为隐式创建、直接实例化、创建数组并指定长度、后来为了方便直接使用json格式定义数组,这里脚本之家小编就为大家介绍一下,需要的朋友可以参考一下
    2017-10-10
  • 基于javascript 闭包基础分享

    基于javascript 闭包基础分享

    闭包向来给包括JavaScript程序员在内的程序员以神秘,高深的感觉,事实上,闭包的概念在函数式编程语言中算不上是难以理解的知识
    2013-07-07
  • 彻底理解js面向对象之继承

    彻底理解js面向对象之继承

    这篇文章主要介绍了js面向对象之继承的相关知识,以及分享了读者弄明白这个知识点的学习心得,对此有需要的朋友参考下吧。
    2018-02-02
  • javascript数组去重方法总结(推荐)

    javascript数组去重方法总结(推荐)

    这篇文章主要介绍了javascript数组去重方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • js null,undefined,字符串小结

    js null,undefined,字符串小结

    还一个要注意的就是null虽然是Object型 但是它非常特殊,本身存放在stack栈中。你可以理解成它是Object的一种特殊形式
    2010-08-08
  • Javascript入门学习第三篇 js运算

    Javascript入门学习第三篇 js运算

    上篇文章讲了js中的传值和传址 和 函数的作用域. 这章我们来探讨js中的变量,表达式,和运算符 还有一些 js 语句。 升级中……
    2008-07-07
  • 详解在网页上通过JS实现文本的语音朗读

    详解在网页上通过JS实现文本的语音朗读

    这篇文章主要介绍了在网页上通过JS实现文本的语音朗读,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • JavaScript之数组(Array)详解

    JavaScript之数组(Array)详解

    这篇文章主要介绍了JavaScript之数组(Array)详解,本文详细讲解了JavaScript数组的创建、检测数组、转化方法、栈方法、队列方法、重排序方法、操作方法、位置方法等内容,需要的朋友可以参考下
    2015-04-04

最新评论