js类型转换

原始值和引用值

在 ECMAScript 中,变量可以存在两种类型的值,即原始值和引用值。

原始值
存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
引用值
存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。

对象转数字

1、 [].valueOf() //[]

2、[].toString() //""

3、Number("") //0

对象到字符串

1、[].toString() //""

 

javascript中的“+”运算符可以进行数学加法和字符串连接操作。如果它的其中一个操作数是对象,则javascript将使用特殊的方法将对象转换为原始值,而不是使用其他算术运算符的方法执行对象到数字的转换,“==”相等运算符与此类似。如果将对象和一个原始值比较,则转换将会遵照对象到原始值的转换方式进行。

 

对于所有非日期的对象来说,对象到原始值的转换基本上是对象到数字的转换,日期对象则使用对象到字符串的转换模式,然而,这里的转换和上文讲述的并不完全一直:通过valueOf或toString()返回的原始值将被直接使用,而不会被强制转换为数字或字符串。

 

和“==”一样,“<”运算符以及其他关系运算符也会做对象到原始值的转换,但要除去日期对象的特殊情形:任何对象都会首先尝试调用valueOf(),然后调用toString()。

 

posted @ 2017-07-31 15:38  *﹏漸洐漸薳〆…  阅读(160)  评论(0编辑  收藏  举报