面试笔记整理

文章讨论了项目中的跨域问题及其解决方案,包括CORS、JSONP和网关技术。还介绍了路由的三种模式:hash、history和abstract。此外,文章阐述了ES6的模块化(ESModule)、var、let、const的区别以及为什么需要模块化。同时对比了webpack和vite在项目开发速度和热更新方面的差异。最后,列举了一些ES6的特性如数组操作方法。
摘要由CSDN通过智能技术生成

怎么解决项目里面的跨域问题
  • 跨域产生原因是因为 同源策略,所谓同源就是指,协议,IP,端口号这三项要保持一致,有一项不同就是跨域了

  • 解决方法主要有:
    (网关技术,后端 Cors,前端 jsonp) cros 后端用 @koa/cors这个依赖,主要是配置一个白名单,允许跨域请求
    方案1:网关技术(nginx,zuul,springcloudgateway)【企业级处理方案】

    方案2:后端编码方式 (Controller种加上) @CrossOrigin 【跨域请求比较少】

    方案3:前端处理 【vue 提供 proxy_table 组件】

路由三种模式:hash history abstract
  • hash :在安全性方面更强大,是最安全的模式,兼容所有的浏览器和服务器 # (路径名带个“#” , router的mode设置为hash)
  • history : History.back()、History.forward()、History.go()
var 、let 、const
ES6 提供的模块化方案叫做 ES Module,简称 esm
  1. ES Module 是 ES6提供的模块化标准;(之前没有模块化的概念,为什么提出来模块化?)
  2. ES Module 基础知识主要包含这几点:
  • 默认开启严格模式;
  • import
  • export
  • default export
为什么模块化?
  • web sites慢慢变成了web app
  • 随着项目的扩大,代码量越来越大,代码越来越复杂
  • 对代码、文件的高度解耦的要求
  • 优化上,希望减少http请求
webpack, vite 了解
  1. webpack服务器启动速度比vite慢
    由于vite启动的时候不需要打包,也就无需分析模块依赖、编译,所以启动速度非常快。当浏览器请求需要的模块时,再对模块进行编译,这种按需动态编译的模式,极大缩短了编译时间,当项目越大,文件越多时,vite的开发时优势越明显

  2. vite热更新比webpack快
    vite在HRM方面,当某个模块内容改变时,让浏览器去重新请求该模块即可,而不是像webpack重新将该模块的所有依赖重新编译;

  3. vite使用esbuild(Go 编写) 预构建依赖,而webpack基于nodejs, 比node快 10-100 倍

  4. vite生态不及webpack,加载器、插件不够丰富

ES6特性的使用
  1. concat: 连接两个或多个数组,不改变原数组
  2. 数据合并,可以用拓展运算符…,数组去重 new Set()在这里插入图片描述
  3. split
  4. includes:判断一个字符串里是否包含目标字段,返回是否
  5. . slice splice
  6. filter find :find方法中找到符合条件的项,就不会继续遍历数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值