19年面试总结

1.懒加载,预加载的实现

  懒加载:

    原理:使用一张loding图片作为占位图,当当前需要加载的图片在可视区时等原图加载完成替换loding图片

  预加载:

    原理:使用一张低清晰度小图顶住原图片位置,待原图片下载完成替换成高清原图

2.前端优化方案

  1. js/css等使用不同地址cdn分发,单个有速度限制

  2. js/css压缩/合并/混淆

  3. 按需加载

  4.合理利用sync/defer(sync无法确定顺序异步加载,defer等页面完成后顺序加载css/js)

3.小程序的登录

  1.前端使用wx.login 获取code 

  2.通过wx.requer将请求回来的code传递给后台

  3.后台通过将code和appid,appsecret组合加密后向微信请求open_id  和sesstion_key 

  4.后台接收后处理返回给前端,前端存储在缓存中

  5.以后每次请求将返回的密钥附带提交给后端

4.vue 和react 的异同

  相同点:都推崇组件开发

      只关注视图部分

      都有配套的全家桶

      都可以使用构建工具快速构建项目

      都有props想子组件传递数据的概念

  差异: vue推崇使用模板语法  react使用jsx语法

      vue是数据双向绑定     react是单向数据流

     vue的是mvvm              react是mvc

      

5.小程序跟vue 对比异同

6.作用域/闭包

  作用域(即上下文)

    作用域分为两种

      1.全局作用域(window) 整个程序中都可以访问到

      2.局部作用域 局部作用域能访问全局作用域,全局作用域访问局部作用域报错

  闭包  是能够读取其他函数内部变量的函数

 function closure(){

            let test = 10 ;

            return function(){

                return test++;

            }

        }    

        // 调用函数(该函数调用后因为在返回函数中有test的引用所有计数器并不为0 所以并未释放空间)
        let test  = closure();

        // 第一次调用
        test(); // 11

        // 第二次调用
        test(); //12

        // 若并未赋值给变量直接使用则每次使用完后释放空间
        closure()(); // 11

        closure()(); //11

 

8.cookie,sessionStorage,localStorage区别

  1.cookie(大小限制4K,且每次提交cookie都会携带给后台)

  2.sessionStorage  窗口关闭时 缓存数据清空

  3.localStorage  当前浏览器永久缓存(大小比较大5M)

    3.1 在隐私模式下无法读取

    3.2 字符串类型

    3.3 占用内存大小过多页面容易变卡

    3.4不能被爬虫抓取

posted @ 2019-06-06 16:34  link_xjxj  阅读(143)  评论(0编辑  收藏  举报