zoukankan      html  css  js  c++  java
  • js 实现 a == 'juejin' && a == 666 && a == 888

    什么是隐式转换


    在 javascript 中,当运算符在运算时,如果两边数据类型不统一,CPU就无法进行运算,这时 javascript 会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算。这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换。

    当引用类型和基础类型进行运算时,会将引用类型转换为基础类型。在 javascript 中,每个引用类型都有他们的内置方法,其中有两个内置方法 valueOf() 和 toString():

    • toString(): 返回对象的字符串表示。
    • valueOf(): 返回对象对应的字符串、数值或布尔值表示。通常与 toString()的返回值相同。

    他们能够将 Object 类型隐式转换为基础类型,从而进行运算和比较。


    const a = {
     count: 0, // 记录当前是第几次比较
     valueOf() {
       this.count++;
       if(this.count === 1) {
         return 'juejin'
       } else if(this.count === 2) {
         return 666
       } else {
         return 888
       }
     }
    }
    
    console.log(a == 'juejin' && a == 666 && a == 888)  // true 

    原文地址:https://juejin.cn/post/6975693930096492580

  • 相关阅读:
    字符串 高精度计算
    JAVA Socket编程 课堂作业
    图论 Floyd算法
    天梯赛题解 L1-049 天梯赛座位分配
    天梯赛题解 -L1-039 古风排版
    HDU 5558 后缀数组
    HDU 6194 后缀数组
    HDU 5769 后缀数组
    HDU 4691 后缀数组+RMQ
    HDU 4135 容斥原理
  • 原文地址:https://www.cnblogs.com/fuyao/p/14925697.html
Copyright © 2011-2022 走看看