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

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
原理

JS函数中if(xxx)与a==b的判断方法_第1张图片

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,不知大家都算对了吗?!
下面看一下原理
解密


JS函数中if(xxx)与a==b的判断方法_第2张图片

toNumber

JS函数中if(xxx)与a==b的判断方法_第3张图片

toPrimitive

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

你可能感兴趣的:(JS函数中if(xxx)与a==b的判断方法)