网易前端面试笔试题

353人已阅读 2018-08-23 18:59:23
导读 每一帧动画都会进行计算的,它性能消耗也是不容小觑的。
前端开发培训 后端开发培训 数据库培训 人工智能培训 云计算&大数据培训 ui设计培训

新闻详情

2018-08-23 18:59:23

网易前端面试笔试题

  每一帧动画都会进行计算的,它性能消耗也是不容小觑的。

  1.alert(1&&2),alert(1||0)
  具体我不记得了反正就这两个,我以为考的是纯粹的与运算和或运算,后来发现太天真了
  1alert(1&&2)的结果是2
  2只要“&&”前面是false,无论“&&”后面是true还是false,结果都将返“&&”前面的值;
  3只要“&&”前面是true,无论“&&”后面是true还是false,结果都将返“&&”后面的值;
  4
  5alert(0||1)的结果是1
  6只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
  7只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
  2.mouseenter和mouseover的区别
  这个之前看了下,大概是答出来了,但可能不够详细吧
  1不论鼠标指针穿过被选元素或其子元素,都会触发mouseover事件。对应mouseout
  2只有在鼠标指针穿过被选元素时,才会触发mouseenter事件。对应mouseleave
  3.用正则表达式匹配字符串,以字母开头,后面是数字、字符串或者下划线,长度为9-20
  看到这题我是崩溃的,因为正则学的不多,但是稍微写了下也差不多只是忘了些
  1varre=newRegExp("^[a-zA-Z][a-zA-Z0-9_]{9,20}$");
  4.js字符串两边截取空白的trim的原型方法的实现
  1//我的笨方法,当时还想错了一些,回来后实现了一下,思路是这样
  2String.prototype.trim=function(){
  3vararr=this.split("");
  4while(1){
  5if(arr[0]==""){
  6arr.shift();
  7continue;
  8}
  9break;
  10}
  11while(1){
  12if(arr[arr.length-1]==""){
  13arr.pop();
  14continue;
  15}
  16break;
  17}
  触发repaint:
  1color的修改,如color=#ddd;
  2text-align的修改,如text-align=center;
  3a:hover也会造成重绘。
  4:hover引起的颜色等不导致页面回流的style变动。
  触发reflow:
  1width/height/border/margin/padding的修改,如width=778px;
  2动画,:hover等伪类引起的元素表现改动,display=none等造成页面回流;
  3appendChild等DOM元素操作;
  4font类style的修改;
  5background的修改,注意着字面上可能以为是重绘,但是浏览器确实回流了,经过浏览器厂家的优化,部分background的修改只触发repaint,当然IE不用考虑;
  6scroll页面,这个不可避免;
  7resize页面,桌面版本的进行浏览器大小的缩放,移动端的话,还没玩过能拖动程序,resize程序窗口大小的多窗口操作系统。
  8读取元素的属性(这个无法理解,但是技术达人是这么说的,那就把它当做定理吧):读取元素的某些属性(offsetLeft、offsetTop、offsetHeight、offsetWidth、scrollTop/Left/Width/Height、clientTop/Left/Width/Height、getComputedStyle()、currentStyle(inIE));
  如何避免:
  尽可能在DOM末梢通过改变class来修改元素的style属性:尽可能的减少受影响的DOM元素。
  避免设置多项内联样式:使用常用的class的方式进行设置样式,以避免设置样式时访问DOM的低效率。
  设置动画元素position属性为fixed或者absolute:由于当前元素从DOM流中独立出来,因此受影响的只有当前元素,元素repaint。
  牺牲平滑度满足性能:动画精度太强,会造成更多次的repaint/reflow,牺牲精度,能满足性能的损耗,获取性能和平滑度的平衡。
  避免使用table进行布局:table的每个元素的大小以及内容的改动,都会导致整个table进行重新计算,造成大幅度的repaint或者reflow。改用div则可以进行针对性的repaint和避免不必要的reflow。
  避免在CSS中使用运算式:学习CSS的时候就知道,这个应该避免,不应该加深到这一层再去了解,因为这个的后果确实非常严重,一旦存在动画性的repaint/reflow,那么每一帧动画都会进行计算,性能消耗不容小觑。

  以上就是海程在线教育小编为大家精心整理出来的内容啦,更多资讯记得定期关注我们哦!
上一篇: 写给前端应届生的职业规划建议 下一篇: 如何理解代码才能成为更优秀的程序员

相关文章

推荐课程

查看全部课程
重庆海程在线教育

重庆海程在线教育

重庆校区

查看全部校区 进入官方主页