1.如何串行执行100个Promise对象(reduce函数)
2.如何实现React无关系组件的通信(发布订阅,Event包)
3.正则表达式匹配
4.原生js封装一个错误弹窗组件
5.写一个函数,根据JSX语法生成对应的DOM
6.connect函数的原理是什么
7.高阶组件的缺点
8.redux的缺点,性能问题
9.for in 和 for of 的区别
for in对对象使用 for of对数组使用
10chrome的sort方法是什么排序:
V8 引擎 sort
函数只给出了两种排序 InsertionSort
和 QuickSort
,数量小于10的数组使用 InsertionSort
,比10大的数组则使用 QuickSort
。
CSS
1.position float display一起设置怎么样
2.flex实现左侧固定,右侧自适应
左侧声明div为300px,右侧声明flex-grow:1默认填满剩余宽度
3.CSS3动画(定义animation,transform移动,keyframe等)
4.不改变width,实现图片缩小到300px
<img src="/hello.jgp" style="width:400px;height:400px !important"/>
因为不能直接改变内联style的值,而且用!important声明,那么另外通过选择器访问并覆盖也不行,我们可以用max-width来改变
max-width:300px,再就是用CSS3的scale属性,transform:scale(0.75,0.75)
HTML
1.img标签下载的图片浏览器如何缓存,如何再次调用它
JSDOM
1.appendChild循环追加子节点无效?
在循环外定义了子元素:let button = document.createElement('BUTTON'),let parentDiv = ducument.quertSelectorAll('div');
循环内appendChild:for(let i =0;i<parentDiv.length;i++) {
parentDiv[i].appendChile(btn)
}
这样无效,因为button这个元素作为一个DOM元素只能有一个父元素,这种情况最后只会被插入都最后一个div元素的子节点上,避免的方法是在循环内创建子元素button
2.vDOM一定比真实DOM效率高吗?不一定,React并没有保证vDOM一定比真实DOM效率高,在很简单的操作DOM的时候,肯定是操作真实的DOM效率高,因为最终vDOM还是要调用浏览器的documentAPI去操作DOM,但是在批量操作,涉及到很多DOM的变化的时候,vDOM可以给我们更加清晰的操作方式,React的diff算法可以去批量更新DOM
3.浏览器和node的event loop的区别:node有micro task,node11后不再有区别
4.理解babel的运行规则:https://www.jianshu.com/p/e9b94b2d52e2