美文网首页
关于if(xx)和 a==b的判断

关于if(xx)和 a==b的判断

作者: 小废柴JH | 来源:发表于2018-05-21 20:23 被阅读0次

if的判断

if(xxx){
}
js 是如何处理的?

原理

类型 结果
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

== 的判断

对于==的判断,js是怎么处理的?

解密

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

toNumber

type Result
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 //true
"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

相关文章

  • 关于if(xx)与a==b的判断

    关于if(xx)与a==b的判断 简单介绍下if(xx)和a==b的相关判断 if(xx)的判断 1.if(num...

  • 2019-05-17

    关于if(xx)和 a==b的判断 if(xx)的判断 括号中的xx会被强制转换为布尔类型,true 或者 fal...

  • 关于if(xx)和 a==b的判断

    if(xx) if后的括号里的表达式会被强制转换为布尔类型 number a = 1if(a){console.l...

  • 关于if(xx)和 a==b的判断

    if的判断 1.if(number)if后的括号里的表达式会被强制转换为布尔类型 例:当 if(number),0...

  • 关于if(xx)和 a==b的判断

    if的判断 原理 解密 对于括号里的表达式,会被强制转换为布尔类型 做几道测试题看一看 == 的判断 对于==的判...

  • 关于if(xx)和 a==b的判断

    if条件判断 if...else 条件判断的语法如下: if (条件){当条件为 true 时执行的代码}else...

  • 关于if(xx)和 a==b的判断

    if(xx)的判断 对于括号里的表达式,会被强制转换为布尔类型 转换规则是除了下面六个值被转为false,其他值都...

  • 关于if(xx)和 a==b的判断

    一. if(xx)的判断JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参...

  • 关于if(xx)和 a==b的判断

    if(xx)的判断 对于括号里的表达式,会被强制转换为布尔类型 类型 结果 Undefined ...

  • 关于if(xx)和 a==b的判断

    一、if(xx)的判断 对于if括号里的表达式,会被强制转换为布尔类型 当if括号里面的表达式为Boolean时,...

网友评论

      本文标题:关于if(xx)和 a==b的判断

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