美文网首页
JS中关于if(xx)和 a==b的类型转换

JS中关于if(xx)和 a==b的类型转换

作者: 清苑折纸 | 来源:发表于2019-05-07 00:03 被阅读0次

if(XX)——不推荐该用法

语法:
if(condition){
statement
}

以上condition可以是任意表达式,不一定是布尔类型的,也可以是非布尔类型的。对于Boolean类型的js在运行时会直接判断,对于非Boolean类型的js会想将其转换为Boolean类型的值再进行判断。

对于非Boolean类型的值转换有如下规则

类型 结果
undefined false
null false
Boolean 直接判断
number +0, −0, 或者 NaN 为 false, 其他为 true
String 空字符串为 false,其他都为 true
object true

举个栗子:

if ("hello") {
console.log("hello")
}

condition是string类型的且不为空,所以转换为Boolean类型为true

if ("") {
console.log('empty')
}

condition是string类型且为空,所以转换为false

if (" ") {
console.log('blank')
}

condition是string类型,但不为空(内有空格),所以转换为true

if ([0]) {
console.log('array')
}

condition是数组类型,归属于对象,所以转换为true

if('0.00'){
console.log('0.00')
}

condition为非空字符串,所以转换为false

a==b的判断——(在转换时我们尽量往数字去带)

在js中==和===都可以做相等判断,其中===是严格意义上的相等,只需要注意NaN不等于NaN即可。而==对于相同类型会直接比较,对于不同类型则会先进行强制类型转换之后在进行比较。

对于==的类型转换有如下规则

  • 如果两个值类型相同,则执行严格意义的相等
  • 如果两个值的类型不同
    -1. null等于undefined
    -2. 一个是数字一个是字符串则先将字符串转为数字再比较
    -3. 如果一个值是Boolean类型则先转为0/1再比较
    -4. 如果一个值是对象,另一个是数字或字符串则用valueOf和toString转换之后再比较
    -5. 其他的不相等
具体转换规则
image.png
image.png

相关文章

  • JS中关于if(xx)和 a==b的类型转换

    if(XX)——不推荐该用法 语法:if(condition){statement} 以上condition可以是...

  • 2019-05-17

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

  • JavaScript类型转换-关于 if(xx) 和 a==b的

    if(xx) 的判断 对于括号里的表达式,会被强制转换为布尔类型 a=b 的判断 toNumber toPrimi...

  • js中关于if(xx)和 a==b

    if判断 在js中一般不使用if(变量)的方式使用if条件语句,容易产生你所不希望的结果,先来看看如下的代码 看了...

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

    if(xx) 对于if(xx),是把xx转换成boolean在进行判断各类型转换布尔结果: a==b 对于a==b...

  • JS函数

    关于if(xx)和 a==b的判断 if 的判断 对于括号里的表达式,会被强制转换为布尔类型。 结果为 true ...

  • js函数

    关于if(xx)和 a==b的判断if 的判断 对于括号里的表达式,会被强制转换为布尔类型。 结果为 true 的...

  • 解密类型转换:if(xx)和 a==b的判断

    解密类型转换:if(xx)和 a==b的判断 正在学习JS函数,感觉很懵,可能是有某个点没有理解,所以导致串联不起...

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

    1. if结构 if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。 基本形式 注意点:对于i...

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

    一、JS中关于if(xxx)的判断: js是如何处理的?我们先来看几道测试题 以上题目代码的输出结果为: 题目1的...

网友评论

      本文标题:JS中关于if(xx)和 a==b的类型转换

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