极视角前端技术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()

 

posted @ 2020-04-02 16:09  柯柯冲基波keke  阅读(258)  评论(0)    收藏  举报