对象相关运算符的转换==给自己看哒

102 阅读1分钟

因为对各种类型遇到运算符的转换不是很清楚,所以只好手打记下来咯。

  1. +操作符:
    如果一个操作数是对象,数值或者布尔,调用toString(),对应undefined或者null,调用String()函数取得字符串'undefined'和'null'

  2. %,/,*操作符:
    如果有一个操作符不是数值,则后台调用Number()将其转为数值进行运算

  3. -操作符
    如果有一个操作数是对象,则调用对象的valueOf方法以取得表示该对象的数值,若对象没有valueOf方法,调用其toString()并将字符串转为数值

  4. Number()如果传入的是对象,则调用对象的valueOf()方法,若结果为NaN,调用对象的toString()方法再转为数值

  5. valueOf()和toString()方法(参考CSDN文章)

    对象 valueOf() 返回值 toString() 返回值
    Number 数字值(number) 数字值(string)
    String 字符串值 字符串值
    Boolean 布尔值 字符串值
    Object 对象本身 字符串值
    Function 函数本身 字符串值
    Date 以毫秒数存储的时间值(number) 标准时间输出(string)
  6. 基本包装类型
    每当读取一个基本类型值时,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据,Number()和Boolean()创建的对象是没有可遍历属性的