toString 和 valueOf
toString and valueOf ???
toString
今天在看以前写的代码时,遇到某个老师的点评:
1 | var obj = {}; |
一看到这个,我就又犯难了。我对这 javascript 的类型转换实在记不住!我知道 obj [key],中的 key 如果不是字符串,会调用 key.toString () 转换为字符串。但是不知道 [1, 2, 3].toString () === “1,2,3”。虽然这些东西都是定死的,记不住也没关系吧,只要记得在类型值判断时尽量用严格判断就好。下面记几个常见的 toString:
1 | var obj = {}; |
valueOf
这个东西返回一个原始值,而且对各个 JS 固有对象,定义还不同。
对象 | 返回值 |
---|---|
Array | 数组本身。 |
Boolean | 自身 Boolean 值。 |
Date | 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC |
Function | 函数本身。 |
Number | 数字值 |
Object | 对象本身。这是默认情况 (没有重写 valueOf) |
String | 字符串值。 |