为了账号安全,请及时绑定邮箱和手机立即绑定

当Array()里的值为一个时,怎么区分是指定的长度还是赋的值?

有一个问题 var myarr= new Array(3);  document.write("数组第一个值是:"+myarr[0]+"
"); 输出为undefined,var myarr= new Array(3,4);document.write("数组第一个值是:"+myarr[0]+"
");  document.write("数组第二个值是:"+myarr[1]+"
"); 输出 3,4  为什么呢?

正在回答

3 回答

为数组赋值原本应该写为var myarr = new array("3","4"),当去掉双引号之后,由于有两个数字3,4并不能成为array()的参数,所以也能正常赋值;但是当写为var myarr = new array(3)时,会判断为3是array的参数,因此这个时候赋值应加上双引号。

1 回复 有任何疑惑可以回复我~

a):new Array(1) == [undefined × 1]; 

b):new Array(1,2) == [1, 2];

c):new Array('1') == ["1"];

当参数是单个并且为number类型的时,就是a情况,是指定长度,如果不是number类型参数,就如情况c,是赋了一个值,当参数是多个的时候,就是传统赋值了。明白否?

0 回复 有任何疑惑可以回复我~

var myArray = [2, 8];赋值一般用中括号,用小括号的也可以,里面的元素应该是用“”引号括起来的。 var myarr2= new Array("3","7"); 应该是这个写的

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

当Array()里的值为一个时,怎么区分是指定的长度还是赋的值?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信