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
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 相关阅读:
    Microsoft Visual Studio 2008
    JavaScript动态添加|绑定事件
    超级实的js代码大全 [转]
    《dojo 边学边用》(02), djConfig配置解说
    整合ckeditor_3.0.1和ckfinder_aspnet_1.4.1.1,配置随笔记录
    everybody is a tourist。you and me。
    测试并提升你的jQuery选择器水平
    php
    《dojo 边学边用》(01), 初识dojo,dojo简介和框架概览
    HTML 三栏自动适应
  • 原文地址:https://www.cnblogs.com/deepalley/p/14153644.html
Copyright © 2011-2022 走看看