个人收藏面试

362 阅读2分钟
  • js的 几种数据类型

num object Undefined Number boolean String
  • cookie、sessionStorage、localstorage区别

    生命周期
        cookie:可设置过期时间,没有设置的话,默认是关闭浏览器后失效
        localstorage:除非手动清除,否者将会永久保存
        sessionStorage:仅在当前网页会话下有效,关闭页面货浏览器就会被清除
    存放数据大小
        cookie:4KB左右
        localstorage和sessionStorage 可以存放5MB
    HTTP请求
        cookie:每次都会携带在HTTP头中,如果使用cookie保存数据过多 会带来性能问题
        localstroage和sessionStorage 仅保存在客户端(浏览器)中保存,不参与服务器通信
  • 封装组件 列如本地存储

  • 二个接口同时请求(可能需要请求一个接口,马上请求接口)

var url = '接口地址1';
var url2 = '接口地址2'
Promise.all([url,url2]).then((result)=>{
    console.log('2个接口返回',result)
}).catch((error)=>{
    console.log(error)
})
  • vue 首页加载卡顿

    vue 异步路由懒加载(组件懒加载也是一样的写法)
       component:resolve=>(require(['需要加载的路由地址']),resolve)
    2.ES 提出 import 方法 (最常用)
        const HelloWord =()=> import('需要加载的路由地址')
        routes:[{
            path:'/',
            component:{
                HelloWord
            }
        }]
  • 路由有几种模式 区别是啥

明显区别
     hash模式的URL夹带#号,而history没有
底层不同
    hash模式依靠onhashchage事件监听location.hash的改变,而history模式主要依靠HTML5 history
    新增的两个方法:pushstate()和repalceState()可以改变地址且不会发送请求
    repalceState()可以读取历史记录,对浏览器记录进行修改
  • 路由用户权限

  • query和params区别

    query要用path来引入
        quert接受参数:this.$route.query.name
            
    params要用name引入
        params:this.$route.params.name
        
  展示上区别
      query 会在浏览器地址栏上展示参数
      params 不会显示
  • axios怎么在请求头设置参数 设置拦截器 (多个接口都返回403 怎么统一处理)

  • 获取微信小程序路由的url

    微信小程序可以通过getCurrentPages()方法获取
    也可以通过pages[pages.length-2].route获取上级页面URL
  • 小程序兼容性问题

  • js怎么解决跨域问题

   通过jsonp跨域
   通过修改document.domain来跨子域
   使用HTML5中新引进的window.postMessage方法来跨域传送数据
   使用Web sockets来跨域
  • 路由钩子哪几种

    beforeEach
    afterEach
    beforeLeave
  • 获取浏览器内核

navigator.userAgent  浏览器内核
getSystemInfo 获取小程序内核