js函数中的if判断和a==b判断

作者: 小7丁 | 来源:发表于2018-02-25 17:11 被阅读63次

if判断

if(xxx){
}
  • 括号内的表达式,会被强制转换为布尔类型

原理

类型 结果
Undefined false
Null false
Boolean 直接判断
Number +0, −0, 或者 NaN 为 false, 其他为 true
String 空字符串为 false,其他都为 true
Object true

a==b的判断的规则如下:

1、如果两个值类型相同,进行 === 比较。
2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较:
a、如果一个是null、一个是undefined,那么[相等]。
b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。
c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。
d、如果一个是对象,另一个是数值或字符串,把对象转换成基础类型的值再比较。对象转换成基础类型,利用它的toString或者valueOf方法。
e、任何其他组合,都[不相等]。

  • 表格如下:
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的转换

类型 结果
Undefined NaN
Null 0
Boolean ture -> 1, false -> 0
String “abc” -> NaN, “123” -> 123
  • 对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结果

相关文章

  • js函数中的if判断和a==b判断

    if判断 括号内的表达式,会被强制转换为布尔类型 原理 a==b的判断的规则如下: 1、如果两个值类型相同,进行 ...

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

    JS函数中if(xxx)与a==b的判断方法 if(xxx)的判断 对于括号里的表达式,会被强制转换为布尔类型下面...

  • Destoon框架中的一些JS

    Destoon框架中的JS函数 判断移动端类型 判断是不是IE浏览器 判断当前是不是webkit内核 判断当前的用...

  • 2019-04-07

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

  • 2017-4-1 VUE

    JS的方法 1、类型判断的方法 2、创建对象构造函数 3、JS基础函数和语法

  • 2021-03-04

    js 判断执行顺序 手动编写new方法 为什么输出函数 首先进行变量提升b,然后执行自定义函数,里面的b = 20...

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

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

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

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

  • 2018-03-14

    if(xx)和a==b的判断 在JS中,if语句是最常见的编程语句,语法为if(condition){//true...

  • js中的函数和Boolean判断真假

    为什么要使用函数:便于维护和修改代码,可以提高代码的复用性,可以让代码变简洁(封装通用的代码) 创建函数 1.fu...

网友评论

    本文标题:js函数中的if判断和a==b判断

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