初级前端的面试之路

作者: 编程小世界 | 来源:发表于2019-10-12 22:30 被阅读0次

回流

当 Render Tree 中的一部分节点因为元素的尺寸大小、布局、隐藏/显示的切换等改变时,需要对 DOM Tree 进行重新的构建的,这就是回流。

重绘

当 Render Tree 中的一些元素需要更新部分属性,并且这些属性只是影响元素的外观显示,不影响布局的时候,就是重绘。

如果有想学习编程的初学者,可来我们的前端直播授课群的哦:733395506里面免费送整套系统的前端教程

为什么要用 Sass/Less/Stylus ?

这些 CSS 预处理语言可以让 CSS 具有一定的编程风格,在我实际的开发体验中给我带来了许多便捷的地方,并且使用他们更有利于项目的后期维护。

可以定义变量,这对于设置很多重复性颜色来说真的太方便了

可以嵌套式的书写(仁者见仁智者见智吧),我更喜欢 Stylus 的书写方式

提高了样式的复用性,避免重复书写许多公共样式

可以定义一些函数,这在移动端开发方面可以做媒体查询、适配等工作

HTML5/CSS3 新特性

简单回答了几个,不是太全面

HTML5

更多的语义化标签(header/nav/footer/section...)

音频、视频 API

Canvas

webSocket

localStorage/sessionStorage

CSS3

新的选择器(属性、伪类、伪元素)

颜色新增 RGBA/HSLA 模式

过渡效果:transition,可实现动画效果

自定义动画

媒体查询

盒子模型

JavaScript 相关

谈一谈原型和原型链

首先,解释一下什么是原型:

每一个 JS 对象在被创建的时候,就会与之关联另一个对象,这个对象就是我们所说的原型,每一个对象都会从原型上继承属性

每一个 JS 对象在被创建的时候,都具有一个属性:__proto__ ,这个属性会指向该对象的原型。要知道,原型也是一个对象 ,既然这样,那么他的__proto__ 指向Object 的Object 的原型

那么,Obeject 的原型的原型是什么?

答案应是:null

无法再往上层进行查找...这样通过__proto__ 向上一直查找所形成的链式结构,就是原型链。

浅克隆和深克隆

什么是浅克隆?什么是深克隆?

浅克隆中原始类型为值传递,对象类型仍未引用传递;深克隆中所有元素或者属性都可以进行完全的复制,生成一个与原对象完全不相干的对象,也就是新对象中的所有修改都不会在原对象中有所表现。

如何实现浅克隆?

JS 内部实现了浅拷贝Object.assign() ,第一个参数是最终复制的目标对象,后面的所有参数是我们即将复制的原对象。(该方法适用于数组或者对象)

varnewObj =Object.assign({},obj)复制代码

原生 JS 实现

functionshallowCopy(source) {letnewSource = {};for(iteminsource) {if(source.hasOwnProperty(key)) {      newSource[key] =source[key];    }  }returnnewSource;}复制代码

如何实现深克隆?

使用 JSON 序列化

newSource =JSON.parse(JSON.stringfy(source))复制代码

但是该方法有一点的缺陷:

undefinedsymbol

三方类库,类似 lodash 的_.cloneDeep()

自己手动实现(简易版)

functiondeepClone(source) {if(typeofsource!=='object') {return'不是对象';  }letisArray = Array.isArray(source)letnewSource = isArray ? [] : {}for(letkeyinsource) {if(typeofsource[key] !=='object') {      newSource[key] =source[key]    }else{      newSource[key] = deepClone(source[key])    }  }returnnewSource}复制代码

相关文章

  • 初级前端的面试之路

    回流 当 Render Tree 中的一部分节点因为元素的尺寸大小、布局、隐藏/显示的切换等改变时,需要对 DOM...

  • 面试知识体系整理

    中高级前端大厂面试秘籍 上篇中高级前端大厂面试秘籍 下篇 JS 原生面经从初级到高级

  • 现在加入Web前端学习还有市场吗?自己是否适合学习前端

    现在市场上对于初级前端并不友好,直接可以这么说,一个实习前端,初级前端,你去面试,竞争力是非常非常大的!不要以为你...

  • 找前端工作,了解下面的面试题,就成功一半

    小编最近在面试,顺便总结了一下面试前端中常见的问题。并没有涉及到一些框架面试,合适初级程序员面试的问题,欢乐前端大...

  • 初级前端面试

    HTML+CSS部分 1、CSS 隐藏元素的方法有哪些?(5种) 将opacity 设为 0; 将 visibil...

  • 一年前端面试打怪升级之路(四)

    掘金传送门: 一年前端面试打怪升级之路(一) 一年前端面试打怪升级之路(二) 题外话:前面两篇文章掘金评论下展开了...

  • 初级前端面试小记

    2018 年初连续面试了十多家初级前端岗位,每次面试结束之后都会习惯性地记下来被问到的问题。最后归纳总结了一些题目...

  • 前端初级面试题

    开始整理面试题了... 咯咯咯 Dayone 2019,6,30 一,html5有哪些新特性? 1,语义标签: ...

  • 初级前端js面试整理

    1.列举2中数组去重方法 去重1:利用indexof返回第一次下标是否存在,增加到一个新数组中 去重2:先利用so...

  • 写给初级前端的面试经验

    最近到了金三银四的跳槽季,很多人都会面临跳槽找工作,并且再过几个月又会到毕业季,越来越多的毕业生会面临这个问题。 ...

网友评论

    本文标题:初级前端的面试之路

    本文链接:https://www.haomeiwen.com/subject/abwcmctx.html