青益

心若向阳,无畏伤悲

  • 111
  • 文章数
  • 5
  • 分类数
  • 177
  • 评论数

青益

  • 111
  • 文章数
  • 5
  • 分类数
  • 177
  • 评论数

心若向阳,无畏伤悲

2023/01/08

「  [学习记录] JS 类型转换 - 隐式转换  」

JS 类型转换 - 隐式转换

  • 强制转换也叫作显式转换
  • 隐式转换叫做自动类型转换
简单规则介绍
  1. 如果一个操作数是布尔值,那么在比较之前相等性之前 会将其转换成number类型

    例如:ture == 1

  2. 如果一个数是字符串,另一个操作数是数值,那么在比较时也会将这个字符串转换成数值 如果是一个不合法的数值则结果NaN 我们知道NaN和任何内容比较都不相等,包括自身 同时 如果在进行比较是 一个操作数是NaN 那么就会无视规则 直接返回false
  3. null == null 也会无视规则 直接返回TRUE
  4. undefined == undefined也会无视规则直接返回true
  5. null == undefined 也会无视规则直接返回TRUE
  6. NaN == NaN 也会无视规则直接返回false
  7. === 全等号在进行比较的时候 不会转换类型
  8. 如果一个操作数 是对象 另一个操作数不是对象 就会调用对象的tostring方法 用得到的基本值按照之前的规则去进行比较
  9. 如果两个操作数 都是对象 则去比较他们是否同一个对象 也就是引用地址是否是相同,如果不是相同,那么就会返回额FALSE 反之 true
例子
console.log("1"+true);   //结果为 1true

console.log(1+true);   //结果为 2

console.log(1+undefined); // 结果 NAN

console.log (1+null); //结果为 1 

console.log(true == 1); // true

简单来说就是,在比较运算过程中,基本数据类型会隐式转换,复杂数据类型不能隐式转换,但会使用toString()转成字符串,然后再进行隐式转换

js

comments