这点也同样适用于数字类的数据内容,JavaScript是弱类型语言,变量在赋值前是没有类型的,赋值后才会根据内容来自动确定类型。比如 var x = 500 会自动按两个字节的整型来分配空间,而 x = 80000 这时候两个字节就不够用了,必须重新分配4个字节来存放,变量x也会自动变为长整型变量。
这是因为把一个数组直接赋值给一个变量,所赋值的只是数组的指针(或者说内存地址),两者实际上仍然是同一个数组(或者说同一个对象),改变其中一个的顺序,另一个的顺序也会跟着改变。就好比同一个人有两个不同号码的身份证一样,用不同的身份证不等于这个人就变成另一个人!如果你希望赋值后的数组(比如t)是原数组(比如arr)的复制品(或者说克隆体)而不是同一个,就应该新建一个空数组,然后把原数组的每个元素逐个复制到新数组中,而不能够想当然地用等于号直接赋值!