读书人

这两个结果为啥不一样

发布时间: 2012-10-09 10:21:45 作者: rapoo

这两个结果为什么不一样?

JScript code
function test(){    var arg1 = Array.prototype.slice.call(arguments,0);    var arg2 = arguments;    console.log(arg1)    console.log(arg2)}test('name')

在火狐浏览器里面打印出来的是["name"] 和 +["name"]
这两个的长度和类型多事一样啊。但是arg1 != arg2。求指教

[解决办法]
arguments是一个对象类型(Object),但是具有数组的特性。
[解决办法]
汗~~上面的加注释加得有点乱了
JScript code
var a=["name"];alert(a[0]);//namealert(a);//name//因为数组a有且仅有一个元素时,那就不需要指定数组下标。上面两个输出是一样的。但如果:a=["name","nick"]就不一样了,不指定数组下标的话就会将这个数组以逗号做连接符全部输出//你使用的以下方式,返回的就是个数组arg1=Array.prototype.slice.call(arguments,0);//但如果你使用以下方式,则返回的是个字符串arg1=String.prototype.slice.call(arguments,0);alert(typeof arg1);// >>string 

读书人网 >JavaScript

热点推荐