美文网首页海纳百川
JS函数中if(xxx)与a==b的判断方法

JS函数中if(xxx)与a==b的判断方法

作者: 凛冬已至_123 | 来源:发表于2018-03-10 22:32 被阅读0次

    JS函数中if(xxx)与a==b的判断方法

    if(xxx)的判断

    • 对于括号里的表达式,会被强制转换为布尔类型
      下面看几个例子:
    1. if('hello')
    2. if('')
    3. if(' ')
    4. if('[0]')
    5. if('0.00')
    

    其中1、3、4、5括号里的结果为true,2的结果为false
    原理

    a==b的判断方法

    大家先看几道题目:

    "" == 0  //题目1
    " " == 0  //题目2
    "" == true  //题目3
    "" == false  //题目4
    " " == true  //题目5
    !" " == true  //题目6
    !" " == false  //题目7
    "hello" == true  //题目8
    "hello" == false //题目9
    "0" == true  //题目10
    "0" == false  //题目11
    "00" == false  //题目12
    "0.00" == false  //题目13
    undefined == null  //题目14
    {} == true  //题目15
    [] == true  //题目16
    var obj = { 
      a: 0, 
      valueOf: function(){return 1} 
    } 
    obj == "[object Object]"  //题目17
    obj == 1  //题目18
    obj == true  //题目19
    

    其中true为:1、2、4、7、9、11、12、13、14、18、19,其余为false,不知大家都算对了吗?!
    下面看一下原理
    解密


    toNumber

    toPrimitive

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

    相关文章

      网友评论

        本文标题:JS函数中if(xxx)与a==b的判断方法

        本文链接:https://www.haomeiwen.com/subject/fewbfftx.html