如果shift(???)内部添加元素会怎么处理

139 阅读2分钟

  对数组中的第一个数据进行删除会常常使用shift(),括号里面一直是不填写任何数据就可以达到效果,但是如果给里面添加一些元素会怎样呢,会报错还是会对里面的数据进行解析,还是说没有任何影响呢?
  我想到这里决定对此展开探究.
  虽然用框架处理更方便,为了更好更直观的体现,我决定还是用dom进行操作.
  创建一个index.html引入并index.js文件.
  如图

5-4-1.jpg    index.js中写dom结构.
  声明一个简单数组,每次点击添加会数组增加一个数据,而后用shift()删掉数组第一个数据.如图 5-4-2.jpg   用dom新增li这个可做可不做,添加上去只是为了更好查看对比.
  最开始应该是这样

5-4-3.jpg
  每点击一次添加 , 页面就会增加一个数据 , 控制台会打印一个数组,数组是浏览器中的后面三个数.

5-4-4.jpg
  shift()添加一个num

5-4-5.jpg
  此时没有任何影响.
  将 num 改成 n , 肯定会报错,因为n未声明 , 查看果然如此

5-4-6.jpg
  到这里可以知道,括号内部可以添加合规元素,但是添加后元素没有对shift没有影响.
  那么添加一个表达式或者数组呢?例如将变化的数组加进去会怎样?

5-4-7.jpg
  可以发现shift的功能正常执行了,但是却出现了意外状况,点击一次随机数被添加了两次.
  后面添加一个数可以理解,但是多了一个数怎么说呢?只有一种解释,shift()括号中的内容被解析了,这时将第一个push注释,再次查看.

5-4-8.jpg
  数组再次变得跟之前一样,说括号明内部确实是可以执行的,到此之前的认知便打破了,也让我明白js中还有太多的东西不曾理解,前行的道路还可以走的很长.