zoukankan      html  css  js  c++  java
  • JS的逻辑判断值

    导语

    我们经常在做逻辑判定时会根据判定值的布尔类型来区分操作,即如果是··则··,不然则··的逻辑语境,但由于Js的弱类型特性,它可以利用不同类型的值来替代布尔值。如:

    if(!false){}, 
    if(!""){},
    if(!undefined){},
    if(!null){},
    if(!0){}
    

    效果相同。
    但是,这里面又有哪些陷阱呢?

    这些值是否都相等

    这些值中

    0 == false    //true
    "" == false   //true
    "" == 0       //true
    
    false == undefined   //false
    false == null        //false
    null == undefined    //true
    

    从上面我们可以看出,虽然 0/false/“”/null/undefined 可以充当相同的布尔角色,但是它们却不能在值上相等。只有 0,false,""值相等,undefined与null值相等,其他不相等。

    为什么会这样?

    这里在JS运行时的认定机制我也不是特别清楚,我大概知道Js在这里做了一些不严谨的类型转换,所有的值都会被转换为两个值 : false 与true,再执行代码。

    备注

    由于if语句经常用到,这几种情况还是记下来比较好。

  • 相关阅读:
    numpy 笔记
    xdoj 1402 XY之说走就走的旅行
    红黑树 (洛谷 P3369 【模板】普通平衡树 )
    AVL树 (PAT甲级 Is It a Complete AVL Tree )
    xdoj-1297 Tr0y And His Startup
    C# 获取当前路径7种方法
    JQuery常用方法一览
    Jquery 处理字符串
    js 获取参数
    js cookie
  • 原文地址:https://www.cnblogs.com/zhu-xingyu/p/7612719.html
Copyright © 2011-2022 走看看