都是这几天前端面试里比较高频的问题
首先会问项目难点,建议自己组织好语言,重点是要跟面试官讲清解决思路,是否解决不重要
问题一:
说一下微信小程序的生命周期
微信小程序传参可以用哪些方法?
微信小程序和web页面有什么不同?
问题二:
js数组遍历的方法有哪些?
for each和map有什么区别?
for of和for in有什么区别?
如何实现数组(合并)去重?
问题三:
React的生命周期?性能优化在哪个钩子函数?props和state有什么区别?
问题四:
对作用域、闭包、原型链的理解
js里,对象的继承是怎么实现的?
问题五:
用过Git吗?知道一些常用命令吗?
问题六:
怎么性能优化?有哪些方法?
问题七:
什么是跨域?说一下解决办法
问题八:
怎么实现元素的垂直居中?各个方法的兼容性如何?
问题九:
知道事件冒泡吗?怎么阻止冒泡?事件代理呢?
问题十:
事件循环机制,宏任务,微任务
问题十一:
请用 HTML+CSS 实现一个定宽定高元素在容器中的水平和垂直居中。
<div class="container">
<div class="item"></div>
</div>
.container {
display:flex;
}
.item {
margin:auto;
}
问题十二:
分隔数字,每隔三位加一个逗号
function paddingNum(number){
return number.toLocaleString()
}
console.log(paddingNum(1236699.12)) //123,669,9.12
统计数组中字符串出现频次,两次以上的为true,否则为false
function duplicatedWord(chars){
map a = new map()
for(let i = 0; i < chars.length; i++){
if(a.has(chars[i])){
a.set(chars[i],'true')
continue
}
else{
a.set(char[i],'false')
}
}
return map
}
问题十三:
JavaScript 严格模式下有哪些不同?
严格模式指的是js引擎以严格模式去执行,我们只要在代码前或者函数前添加“use strict”就可以开启严格模式了。在严格模式下对js代码的执行添加了一些限制,主要是为了保证代码在安全环境中执行,减少不必要的错误,为了消除js中的一些不严谨、不合理、不安全的地方,它代表了js一种更加合理、更加安全、更加规范的一个发展方向。
在严格模式下,在全局执行上下文的this和全局执行上下文的函数内this不再指向windon对象;变量必须先声明再使用,不存在变量提升;var声明的变量不允许重复声明同一个变量;
问题十四:
settimeout(foo,0)可等价替换为foo()吗?
不可以。setTimeout(foo, 0)的机制是把foo在0秒内推到浏览器的任务队列里,只有执行栈空了以后,任务队列里的任务才有机会被推到执行栈里执行。foo()是立即执行。
settimeout(0)的作用:同步转异步,把优先级不高的事件往后挪。
问题十五:
class A { }
class B extends A { }
const a = new A()
const b = new B()
a.proto //A.prototype
b._proto_ //B.prototype
B._proto_ //A
B.prototype._proto_ //A.prototype
b._proto_._proto_ //A.prototype