js中 push pop shift unshift使用的小问题

众所周知,在js数组中,有四个常见的方法,分别是:

  1. push() 方法(在数组结尾处)向数组添加一个新的元素,并返回新数组的长度。
  2. pop() 方法从数组中删除最后一个元素,并返回“被弹出”的值。
  3. shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
  4. unshift() 方法(在开头)向数组添加新元素,并返回新数组的长度。

然而,我写下如下代码:

		var arr = new Array();
		arr.push("first","second","third");
		console.log(arr);
		arr.pop();
		console.log(arr);

结果在控制台上看到了两个一模一样的值,按常理说到第一个console.log时应该有三个属性,然后到第二个console.log时失去一个属性,还剩2个属性,但结果却是两个console.log都是有着相同属性:

{"0":"first","1":"second","length":2} at html:10
{"0":"first","1":"second","length":2} at html:12

在chrome,edge中也是如此,很奇怪了,难不成pop方法(其他三个方法都有类似情况)还有什么隐含的东西?
最后发现可能与console.log有关,而使用document.write(),或alert时则无异常:

		arr.push("first","second","third");
		document.write(arr + " ");
		arr.pop();
		document.write(arr);

结果是:

first,second,third first,second

符合预期;
其实用console.log也可以实现,只不过需要在第一个console.log括号中加上 + ” “ 如下:

console.log(arr + "");

本人才疏学浅,目前暂时无法给出一个具体的原因,只有以后再来回答了吧
本文的部分内容来自于实践,暂时未找到相关的知识来支撑(__^^__原谅我读书太少),可能存在某些问题,欢迎各位提出,欢迎讨论。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值