1.数组有10万个数据,取第一个和取第10万个的耗时多久?
答:数组可以直接根据索引取的对应的元素,所以不管取哪个位置的元素的时间复杂度都是 O(1)
JavaScript 没有真正意义上的数组,所有的数组其实是对象,其“索引”看起来是数字,其实会被转换成字符串,作为属性名(对象的 key)来使用。所以无论是取第 1 个还是取第 10 万个元素,都是用 key 精确查找哈希表的过程,其消耗时间大致相同。
得出结论:消耗时间几乎一致,差异可以忽略不计
居中为什么用transform,而不是margin top/left
transform 是属于合成属性,动画会创建一个合成层,只要该层的内容不发生改变,就没必要进行重绘。
margin top/left 属于布局属性,属性的变化会导致重排,从css计算到布局到重绘,浏览器需要为整个层进行重绘并重新上传到 GPU,造成了极大的性能开销