- pop()
- shift()
- splice()
- slice()
改 - 即修改原来数组的内容,常用splice
- splice()
查 - 即查找元素,返回元素坐标或者元素值
- indexOf()
- includes()
- find()
5. 遍历数组的方式有哪些?
javascript原生遍历方法的建议用法:
- 用for循环遍历数组
- 用for…in遍历对象
- 用for…of遍历类数组对象(ES6)
- 用Object.keys()获取对象属性名的集合
6. async/await 怎么进行错误处理?
(async () => {
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('fetch data is me')
}, 1000)
})
}
// 抽离成公共方法
const awaitWrap = (promise) => {
return promise
.then(data => [null, data])
.catch(err => [err, null])
}
const [err, data] = await awaitWrap(fetchData())
console.log('err', err)
console.log('data', data)
// err null
// data fetch data is me
})()
7. CSS动画和JS实现的动画分别有哪些优缺点?
CSS动画:
优点 - 浏览器可以对动画进行优化。代码相对简单,性能调优方向固定。对于帧速表现不好的低版本浏览器,CSS3可以做到自然降级,而JS则需要撰写额外代码。
缺点 - 运行过程控制较弱,无法附加事件绑定回调函数。代码冗长,想用CSS实现稍微复杂一点动画,最后CSS代码都会变得非常笨重。
JS动画:
优点 - 控制能力很强, 可以在动画播放过程中对动画进行控制:开始、暂停、回放、终止、取消都是可以做到的。 动画效果比css3动画丰富,有些动画效果,比如曲线运动,冲击闪烁,视差滚动效果,只有js动画才能完成。CSS3有兼容性问题,而JS大多时候没有兼容性问题。
缺点 - 代码的复杂度高于CSS动画。JavaScript在浏览器的主线程中运行,而主线程中还有其它需要运行的JavaScript脚本、样式计算、布局、绘制任务等,对其干扰导致线程可能出现阻塞,从而造成丢帧的情况。
8. 前端实现动画有哪些方式?
前端常用的动画实现方式有以下种:
- css3的transition 属性
- css3的animation 属性
- 原生JS动画
- 使用canvas绘制动画
- SVG动画
- Jquery的animate函数
- 使用gif图片
9. 写一个返回数据类型的函数,要求自定义的类实例化的对象返回定义的类名
function myTypeof(data) {
var toString = Object.prototype.toString;
var dataType = data instanceof Element ? "Element" : toString.call(data).replace(/\[object\s(.+)\]/, "$1")
if(dataType === 'Object'){
return data.constructor.name
}
return dataType
};
10. cookie、localStorage和sessionStorage 三者之间有什么区别
生命周期
最后
其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)
《前端开发四大模块核心知识笔记》
最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。