美文网首页
== 类型比较

== 类型比较

作者: 没事走两步有事跑两步 | 来源:发表于2020-11-26 10:15 被阅读0次

在JS中 两等的比较方式,不比较类型。会强制进行类型转换后进行比较,记录各种类型比较的转换过程。

   /*
   * 数字 == 字符串 
   * 先将字符串转换为数字
   * 验证
   */
  console.log(121 == '121') // true
  console.log(Number('121') == 121) // true
  /**
   * 字符串 == 对象 
   * 对象会先调用toString转换为字符串
   * 对象统一转换为'[object Object]' 与字符串进行比较
   */
  console.log(Object.prototype.toString.call({})) // '[object Object]'
  console.log(Number('[object Object]') == 'NaN') // false NaN != NaN
  console.log('[object Object]' == {
    a: 1,
    b: 1,
    c: 1
  }) // true
  console.log('[object Object]' == {}) // true
  /**
   * null == undefined / undefined == null  // true
   */
  /**
   *  对象 == 对象 
   *  比较引用地址是否相同
   */
  let obja = {}
  objb = obja
  console.log({} == {}) // false
  console.log(obja == objb) // true
  /**
   * 对象 == boolean值
   * 两边都会转换为数值进行比较
   * 导致永远不会相等
   * 因为对象会先转换为字符串变成'[object Object]'然后在转变为数值则是NaN
   * 那么布尔值 只有 0 和 1 所以不可能相等
  */
    console.log({} == true) // false
  /**
   * 数字 == boolean值
   * 转为数字进行比较
  */
   console.log(1 == true) // true
   console.log(0 == false) // true
   console.log(NaN == false) // false
/**
  * 最奇怪的要数 NaN 自身和自身比较不相等
*/
console.log(NaN == NaN) // false 
console.log(NaN != NaN) // true

相关文章

  • == 类型比较

    在JS中 两等的比较方式,不比较类型。会强制进行类型转换后进行比较,记录各种类型比较的转换过程。

  • 各类型比较

    怪异的对象比较 ![] 打印 返回 false !"" 打印 返回true []=="" 返回 true ...

  • Integer类型==比较

    如果整型字面量的值在-128 到 127 之间,那么不会 new 新的 Integer 对象,而是直接引用常量池中...

  • JavaScript 类型比较

    1. 基础类型比较(不同类型数据比较) === 比较,必须在值和数据类型都相同的情况下,结果才为 true,否则为...

  • JAVA8新特性

    (1)==的比较方式:比较基本类型,比较的是基本类型的值;比较引用类型,比较的是引用类型的地址。 (2)equal...

  • ==和equals的区别

    == 既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型就是比较内存地址 Equals的话...

  • 枚举类型的比较

    Enumeration is actually a class. The class has exactly fi...

  • App的类型比较

    楔子 互联网&软件行业,不管哪个方向,未来不外乎会产生两种变革,一是创新,二是资源整合。正如很多人分析的那样,这个...

  • 10-类型比较

  • PHP 类型比较表

    参考: PHP手册 > 附录 > PHP 类型比较表

网友评论

      本文标题:== 类型比较

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