1、node环境。
版本:
[doctor@localhost javascript]$ node -v v0.12.4 [doctor@localhost javascript]$例子如下:
[doctor@localhost javascript]$ node > var ss = [11,22]; var tt = [55,66]; undefined > ss.splice(0,0,tt);console.log(ss.length);console.log(ss); 3 [ [ 55, 66 ], 11, 22 ] undefined >
var ss = [11,22]; var tt = [55,66]; ss.splice(0,0,tt); console.log(ss.length); console.log(ss); alert(ss);
3
Array [ Array[2], 11, 22 ]
网页弹出内容:55,66,11,22。
3、java8环境
[doctor@localhost javascript]$ jjs jjs> var ss = [11,22]; var tt = [55,66]; jjs> ss.splice(0,0,tt); jjs> println(ss); <shell>:1 ReferenceError: "println" is not defined jjs> print(ss); 55,66,11,22 jjs> jjs> print(ss.length); 3 jjs>
why。。。
其实,上面splice后的结果是一样的,数组变成了多维数组,上面结果中数组的长度是一样的,意味着结果是正确的,不同的是不同的输出方式(有的是输出多维数组的结构信息,有的是格式化输出的,多维数组其实不存在,多维底层还是一维数组->c语言经验)。
为什么一个JavaScript数组splice方法,网页环境、node环境、java8环境等不一样呢
原文地址:http://blog.csdn.net/doctor_who2004/article/details/46553365