极视角前端技术1面
极视角技术1面
2020.04.02 10:00-10:50
1.网页单位
2.三列布局
3.清除浮动
4.跨域-JSONP get/CORS post
5.闭包面试题
6.数列递归面试题-多维数组转化为一维数组怎么搞 https://www.cnblogs.com/chinabin1993/p/9761141.html
可以使用Object.prototype.toString.call()来判断array的类型,也可以使用Array.isArray来判断。
// 方法三:使用递归来实现多维数组转为一维数组
let result = [],
tempArr5 = ['1',2,[3,4,[5,6]],7];
function unid1(arr){
for(let item of arr){
if(Object.prototype.toString.call(item).slice(8, -1)==='Array'){
unid1(item);
}else{
result.push(item);
}
}
return result;
}
console.log(unid1(tempArr5)); // ["1", 2, 3, 4, 5, 6, 7]
7.forEach(),不用forEach()怎么封装实现,平时用不用forEach
array.forEach(function(currentValue, index, arr), thisValue)
https://cloud.tencent.com/developer/article/1519537
8.滚动事件怎么判断触底、如何优化(面试官提示-函数防抖 函数节流)
思路:我们需要设定一个固定高度的盒子,然后我们利用scroll来监听滚动,当scrollTop(滚动的距离) + clientHeight(页面的设定的高度) >= scrollHeight(页面内容总高度)
这样我们就可以判定页面内容滑动到底部了,然后加载更多数据。
如何优化:
防抖和节流,主要是用来防止过于平凡的执行某个操作,如浏览器窗口变化执行某个操作,监听某个input输入框keyup变化,瀑布流布局时Y轴滚动,图片加载。
代码: https://www.cnblogs.com/czkolve/p/10859176.html
9.new一个实例,构造函数的执行过程,
new操作符它到底干了什么?var obj = new Fn()
① 创建一个空对象 var obj = { }
② 将这个空对象的__proto__成员指向构造函数的prototype obj.__proto__ = Fn.prototype
③ 将构造函数的作用域赋给新对象,让this指向这个新对象 Fn.call(obj)
10.vue/react用过没
11.挂载和初始化的区别,获取DOM在哪一步,路由原理
12.http https 网页安全了解哪些
13.call apply区别
14.promise讲一下,promise.all()

浙公网安备 33010602011771号