zoukankan      html  css  js  c++  java
  • js中关于if() 和 == 的判断

    if的判断

    原理

    类型结果
    Undefined false
    Null false
    Boolean 直接判断
    Number +0, −0, 或者 NaN 为 false, 其他为 true
    String 空字符串为 false,其他都为 true
    Object true

    举例

    判断下面的输出内容

    if ("hello") {
        console.log("hello")
    }   //输出 hello
    
    if ("") {
        console.log('empty')
    } //没有输出
    
    if (" ") {
        console.log('blank')
    } //输出blank
    
    if ([0]) {
        console.log('array')
    } //输出array
    
    if('0.00'){
      console.log('0.00')
    } // 输出0.00
    

    ==的判断

    原理

    xy结果
    null undefined true
    Number String x == toNumber(y)
    Boolean (any) toNumber(x) == y
    Object String or Number toPrimitive(x) == y
    otherwise otherwise false

    toNumber

    typeResult
    Undefined NaN
    Null 0
    Boolean ture -> 1, false -> 0
    String "abc" -> NaN, “123” -> 123

    toPrimitive
    对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果

    举例

    判断下面的输出内容

    "" == 0  //  true
    " " == 0  // true
    "" == true  // false
    "" == false  // true
    " " == true  // false
    
    !" " == true  // false
    !" " == false  // true
    "hello" == true  // false
    "hello" == false // false
    "0" == true  // false
    "0" == false  // true
    "00" == false  // true
    "0.00" == false  // true
    
    undefined == null  // true
    true == {}  // false
    [] == true  // false
    
    var obj = { 
      a: 0, 
      valueOf: function(){return 1} 
    } 
    
    obj == "[object Object]"  // false
    obj == 1  // true
    obj == true  // true


    作者:张柴柴
    链接:https://www.jianshu.com/p/a9c44c467f44
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    226_翻转二叉树
    199_二叉树的右视图
    145_二叉树的后序遍历
    做IT,网络/系统/数据库/软件开发都得懂
    [恢]hdu 1200
    [恢]hdu 2080
    [恢]hdu 1222
    [恢]hdu 1128
    [恢]hdu 2153
    [恢]hdu 2132
  • 原文地址:https://www.cnblogs.com/deepalley/p/14153644.html
Copyright © 2011-2022 走看看