薄暮涼年 2022-05-04 13:56:40
这一题考察的是伪数组: (以下献丑)
首先搞清楚这一题要搞清楚 push ,其实push的时候会首先查询数组(伪数组)的 length 属性,接着在数组的最后一个添加上新的元素即 arr[length] (数组从零开始),然后length 增加一。 在这一题中,首先 伪数组查到length 是 2 ,就会 直接在 2 这个下标(属性) 上push 1 , 而length 会增加 1 变成 3 ,接着重复这个过程。
题外话: 伪数组 没有 length 的时候默认是 0。
前端小白, 有错勿怪, 欢迎指正。
薄暮涼年 2022-05-04 13:50:24
@mqyqingfeng 第一条是我弄错了。不过第二条,确实是需要展开的,因为MDN对concat方法的描述:如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组
,因此
[].concat([1,[2,[3,4]]]) // [1,[2,[3,4]]] [].concat(...[1,[2,[3,4]]]) // 相当于 [].concat(1,[2,[3,4]]) // [1,2,[3,4]]
薄暮涼年 2022-05-04 13:47:52
@mqyqingfeng 看到dalao用concat和扩展运算符的时候愣了一下,几乎完全这个方法的印象,甚至还是去查了文档才知道如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。
这一点的。。。dalao你除了面试、写这些博客时候,日常开发中哪里会用到concat么?我之前半年似乎这个方法连5次都没用到
薄暮涼年 2022-05-04 13:34:41
之前面大厂的时候被问到这个问题,同事都说问的太细了,看来还是太嫩了
- 共 1 页
- 1
加 key 是为了特异性识别 如果不加key 就相当于 你的元素里面没有加id 编号 做增删改查 只会默认按照排序索引进行增删改查 然后 就会导致业务逻辑 跟你的试图操作有出入 你会说 咦我想编辑第二个 为何第一个没了
第 1 题:写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么?