因为对各种类型遇到运算符的转换不是很清楚,所以只好手打记下来咯。
-
+操作符:
如果一个操作数是对象,数值或者布尔,调用toString(),对应undefined或者null,调用String()函数取得字符串'undefined'和'null' -
%,/,*操作符:
如果有一个操作符不是数值,则后台调用Number()将其转为数值进行运算 -
-操作符
如果有一个操作数是对象,则调用对象的valueOf方法以取得表示该对象的数值,若对象没有valueOf方法,调用其toString()并将字符串转为数值 -
Number()如果传入的是对象,则调用对象的valueOf()方法,若结果为NaN,调用对象的toString()方法再转为数值
-
valueOf()和toString()方法(参考CSDN文章)
对象 valueOf() 返回值 toString() 返回值 Number 数字值(number) 数字值(string) String 字符串值 字符串值 Boolean 布尔值 字符串值 Object 对象本身 字符串值 Function 函数本身 字符串值 Date 以毫秒数存储的时间值(number) 标准时间输出(string) -
基本包装类型
每当读取一个基本类型值时,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据,Number()和Boolean()创建的对象是没有可遍历属性的