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

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

作者: STARKXJ | 来源:发表于2018-12-10 16:14 被阅读0次

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

简单介绍下if(xx)和a==b的相关判断

if(xx)的判断

1.if(number)

当if语句里面除了0和NaN之外,其他值都为true

if(a){
    console.log('true')
}//true
a = 0
if(a){
    console.log('true')
}//false
a = NaN
if(a){
    console.log('true')
}//false

2.if(string)

除了空字符串为false,其余为true

if(''){
    console.log('true')
}//false
if(' '){
    console.log('true')
}//true
if('0'){
    console.log('true')
}//true

3.if(boolean)

当出现布尔值时,直接判断

4.if(object)

当出现object时,都为true

    console.log('true')
}//true
function f(){
    var b = 1 + 2;
    return b;
}
if(f()){
    console.log('true')
}//true

5.if(undefined)

当if语句内为underfined时,为false

if(undefined){
    console.log('true')
}//false

6.if(null)

当if语句内为null时,为false

if(null){
    console.log('true')
}//false

a==b的判断

对于相同类型的a、b相等判断直接看数值就行,接下来主要讨论不同数据类型之间的a、b之间进行“==”运算时的判断

1.string==number

结果将string转化为number再进行判断:toNumber(a) == b,当a无法转换为number时判断为false

"" == 0 //true
"  " == 0 //true
"hello" == 1 //false
"2" ==2 //true

2.boolean==(any)

boolean在运算时会转换为数值,true为1,false为0.其中boolean与undefined或者null做相等运算时均为false

"" == true //false
" " == false //true
"hello" == true //false
 undefined == false   //false
 undefined == true    //false
 null == false        //false
 null == true         //false

3.object==number/string

object会试图使用valueOf和toString转换后进行比较

var obj ={
    a: 0;
    valueOf: function(){return 1}
}
obj == 1 //true
[] == 0 //true
[2] == 2 //true

4.null和undefined的比较

与number、string和boolean类型相比较均为false,null和undefined之间相互比较为true

undefined == undefined //true
null == null //true
null == undefined //true

5.toNumber转换规则

  • undefined 转换为为 NaN
  • boolean转换为 true:1, false:0
  • string 转换为 "abc":NaN,"123":123

总结:

做相等运算时,一般倾向于将不同的数据类型都转化为数值,或是转化为相同的数据类型.

  • 如果两个值类型相同,则执行严格相等的运算
  • 如果两个值的类型不同
  1. 如果一个是null,一个是undefined,那么相等
  2. 如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
  3. 如果一个值是true/false则将其转为1/0比较
  4. 如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
  5. 其它就不相等了

相关文章

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

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

  • 2019-04-07

    JS中关于if(xx)与a==b的判断 if(xx)的判断 1.if(number) 当if中是number为+0...

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

    if(xx)对于if(xx),是把xx转换成boolean在进行判断如果括号内是boolean,直接判断。否则括号...

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

    1. if(xx)的判断 括号里的表达式,会被强制转换为布尔类型,原理如下表: 转换结果示例:Undefined ...

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

    if(xx) 判断原理: 对于if()里括号的表达式(如以下),会被强制转换为布尔类型 if条件句中有几种转化类型...

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

    if(xx)的判断 1.if(number) 当 if(number),0、NaN为false,其他值为true ...

  • 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的判断

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