• 对象的隐式类型转换


    对象的隐式转换

    • 只有在 JavaScript 表达式或语句中需要用到数字或字符串时,对象才被隐式转换。 当需要将对象转换成数字时,需要以下三个步骤:

    • 调用 valueOf()。如果结果是原始值(不是一个对象),则将其转换为一个数字。
      否则,调用 toString() 方法。如果结果是原始值,则将其转换为一个数字。
      否则,抛出一个类型错误。
      第一步示例:

    > 3 * { valueOf: function () { return 5 } }
    15
    
    • 第三步示例:
    > function returnObject() { return {} }
    > 3 * { valueOf: returnObject, toString: returnObject }
    TypeError: Cannot convert object to primitive value
    
    • 如果把对象转换成字符串时,则转换操作的第一步和第二步的顺序会调换: 先尝试 toString() 进行转换,如果不是原始值,则再尝试使用 valueOf()。
  • 相关阅读:
    B+树实现
    一些比较特殊的计数序列
    codeforce刷题(六)
    codeforces刷题(五)
    Swap and Flip
    leetcode刷题(三)
    leetcode刷题(二)
    leetcode刷题(一)
    C语言学习笔记-变量存储
    水笔记
  • 原文地址:https://www.cnblogs.com/angle-xiu/p/14173100.html
Copyright © 2020-2023  润新知