关于原始类型和引用类型数据:字符串的使用一般场景下直接声明使用,如果调用字符串继承的属性和方法时会创建临时的对象 new String() 进行调用或是赋值等,之后便销毁。创建的字符串对象为临时对象之后便销毁。
NaN:非数字的数字,期望转为一个数字但是无法转换或是转换无意义时返回 NaN
value.toString() 所有对象继承该函数,通过调用该方法进行字符串转换,支持radix参数传递进行进制转换,null 和 undefined 不支持调用
- value 为数组时,返回数组每个元素逗号连接的字符串
- value 为函数时,返回这个函数的实现定义的表达方式
- value 为正则,返回字符串类型的正则
- value 为对象时,
({}).toString()返回[object, object] - value 为日期时,返回可读的日期字符串
valueOf(): 所有对象继承该函数,解释为如果有任意原始值,它就默认将对象转换为表示它的原始值。null 和 undefined 不支持调用
对象转字符串:
- 如果该对象可以调用
toString()且返回值为原始值,如果该返回值为字符串则直接返回,否则转换为字符串后返回 - 如果没有
toString()或是返回值不为原始值,则判断是否可以调用valueOf(),如果可以调用且返回值为原始值,则直接返回该值或是转换字符串再返回 null返回'null'undefined返回'undefined'
对象转数字:
- 调用
valueOf()返回原始值或是类型转换之后再返回 - 调用
toString()返回原始值或是类型转换之后再返回 null返回 0undefined返回NaN
parseInt和parseFloat:转换数字类型,尽可能的转换多的数字字符,并忽略后面的非数字字符
布尔值转换:真值、假值:undefined、null、0、+-0、""、NaN
- 和 == 进行类型转换时,直接使用返回的原始值,而不会进行二次转换
- 左右操作数均转换为数字