zoukankan      html  css  js  c++  java
  • JavaScript中逻辑运算符

    一、JavaScript“逻辑”运算符

    很多学习 JavaScript的人,容易被 JavaScript 的逻辑运算符的运算规则搞晕。为什么呢?因为
    JavaScript的逻辑运算符和其他语言(比如:java、c#、c等)有着很大的不同。其他那些强类型的语言的
    逻辑运算符参数运算的都是true或false,结果也一定是true或false,很容器理解和记住。而JavaScript
    的"逻辑运算符"参与运算的可以是任意类型,结果也可能是任意类型,规则及其复杂。所以,JavaScript中,
    他们已经不是真正的"逻辑运算符"了,所以我才给他们打上引号。

    二、JavaScript中的逻辑运算符

    首先说一下,其他数据类型转换为布尔类型的规则: 
    null、undefined、0、NaN、空字符串转换为false,其他转化为true。 
    javascript中有三种逻辑运算符:

    1. 取反 ! 
    首先把数据转化为布尔值,然后取反,结果为true或false

    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    
    console.log(!"");
    console.log(!d);
    console.log(!a);
    console.log(!b);
    console.log(!obj);
    </script>

    结果: 
    这里写图片描述 
    2. 逻辑与 && 
    js中逻辑与和其他语言不太一样,如果第一个操作数是true(或者能够转为true),计算结果就是第二个操作数,如果第一个操作数是false,结果就是false(短路计算),对于一些特殊数值不遵循以上规则.

    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    
    console.log(true && 10);//第一个操作数是true,结果是第二个操作,也就是10
    console.log(false && b);//第一个操作数是false,结果flase
    console.log(100 && false);//第一个操作数是100,结果flase
    console.log(undefined && false);//第一个操作数是undefined,结果undefined
    console.log(NaN && false);//第一个操作数是NaN,结果NaN
    console.log(null && false);//第一个操作数是null,结果null
    console.log('' && false);//第一个操作数是空串,结果空串
    console.log(0 && 100);//结果是0
    console.log(5 && 100);//100
    console.log(a && b);//hello
    console.log(obj && 200);//200
    </script>

    3. 逻辑或 ||

    如果第一个操作数不是false,结果就是第一个操作数,否则结果是第二个操作数。如果第一个操作数能够转为true,结果就是第一个操作数

    <script type="text/javascript">
    var a = [1,2,3];
    var b = "hello";
    var obj = new Object();
    var d;
    
    console.log(true || 10);//第一个操作数是true,结果是第一个操作,也就是true
    console.log(false || b);//第一个操作数是false,结果是第二个操作数b
    console.log(100 || false);//第一个操作数是100,结果100
    console.log(undefined || 9);//第一个操作数是undefined转false,结果9
    console.log(NaN || false);//第一个操作数是NaN转false,结果第二个操作数
    console.log(null || a);//第一个操作数是null转false,结果a
    console.log('' || false);//第一个操作数是空串转false,结果第二操作数
    console.log(0 || 100);//结果是100
    console.log(5 || 100);//5
    console.log(a || b);//a
    console.log(obj || 200);//obj
    </script>
  • 相关阅读:
    IE9的兼容性
    element 弹框关闭报错
    时间选择器moment格式化存在时差问题
    项目常见bug
    函数封装——函数封装——函数封装
    element-ui 日期选择器范围时间限制
    vue + element 创建教程
    Html基础学习
    HTML、PHP、CSS、JS之间的关系
    vs连接MySQL
  • 原文地址:https://www.cnblogs.com/landmark/p/6938901.html
Copyright © 2011-2022 走看看