【前端面经2】京东一面

题目来源:牛客网

自我介绍

动态参数解析的解决方案

对于动态部分使用…args进行接受,可以把动态部分提取成数组

前端安全问题

CDN劫持

内容安全策略CSP

安全沙箱

Iframe

跨站脚本攻击XSS

攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行

跨站请求伪造CSRF

诱导用户进入第三方网站,在第三方网站向被攻击网站发送跨站请求,通过用户的注册凭证,绕过后台的用户验证

点击劫持

HTTP严格传输安全

数据校验在前端还是后端

都需要,前端为了体验,后端为了安全

websocket使用过程中存在的问题

  1. 连接的建立与保持
  2. 错误处理与短线重连
  3. 性能优化与拓展性

echarts的适配性问题

性能优化

浏览器

  1. 减少HTTP请求
  2. 设置浏览器缓存策略
  3. 合理添加加载动画

资源

  1. 静态资源CDN
  2. 静态资源单独域名
  3. GZIP压缩
  4. 服务端渲染
  5. CSS放在头部、JS放在底部

图片

  1. 字体图标代替图片图标
  2. 精灵图
  3. 图片懒加载
  4. 图片预加载
  5. 使用PNG格式图片
  6. 小于10k的图片转为base64格式

代码

  1. 慎用全局变量
  2. 缓存全局变量
  3. 减少回流与重绘
  4. 节流+防抖
  5. 少用闭包
  6. 减少数据读取次数
  7. 文档碎片优化节点
  8. 减少判断层级
  9. 字面量与构造式

方案

  1. 长列表优化
  2. web worker
  3. 避免iframe

打包

  1. 减少代码体积
  2. 按需加载

缓存策略

缓存分为强缓存和若缓存。其中强缓存包括Expires和Cache-Control,主要是在过期策略生效时应用的缓存。弱缓存包括Last-Modified和ETag,是在协商策略后应用的缓存。强弱缓存之间的主要区别在于获取资源时是否会发送请求

nextTick的原理

因为Vue采用的异步更新策略,当监听到数据发生变化的时候不会立即去更新DOM,而是开启一个任务队列,并缓存在同一事件循环中发生的所有数据变化,减少DOM操作的次数。nextTick接受一个回调函数作为参数,并将这个回调函数延迟到DOM更新后执行

Vuex的响应式原理

Vue2在组件和实例初始化的时候,会将data里的数据进行数据劫持。被劫持过后的数据会有两个属性,分别是getter和setter

Vue3使用的是ES6中的代理和反射,代理用来拦截对象中任意属性的变化,而反射用于对源对象的属性进行操作

原型在vue中的应用

vue-router的核心

核心是路由隐射,将URL路径隐射到Vue组件上

vue提升渲染性能的工作

前端的项目架构分类

微前端的实现方式

  • Nginx路由转发:通过Nginx配置反向代理来实现不同路径映射到不同应用
  • Iframe嵌套:父应用单独是一个页面,每个子应用有一个Iframe包裹,父子通过Message进行通信
  • WebComponents: 每个子应用需要采用纯WebComponents技术编写组件
  • 组合式应用路由分发:每个子应用独立构建和部署,运行时由父应用进行路由管理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696750.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenHarmony驱动框架HDF中设备管理服务构建过程详解

前言 如下图,开源鸿蒙系统驱动框架HDF在内核中的实现,可以分为向用户层提供设备服务的管理模块(Manager),和实际管理硬件的Host模块。 Manager分为DeviceManageService和 DeviceServiceManage,前者负责提供…

1.WEB渗透测试-前置基础知识-ip地址

ip地址: ip地址指的是互联网协议地址,是IP协议提供的一种统一的地址格式,以每一台联网的主机都有一个对应的ip地址,ip地址也可以理解为分配给用户上网使用的网际协议的设备的数字标签。通俗的来说就是你打电话时候的每个人都有自己…

AIGC 实战:如何使用 Docker 在 Ollama 上离线运行大模型(LLM)

Ollama简介 Ollama 是一个开源平台,用于管理和运行各种大型语言模型 (LLM),例如 Llama 2、Mistral 和 Tinyllama。它提供命令行界面 (CLI) 用于安装、模型管理和交互。您可以使用 Ollama 根据您的需求下载、加载和运行不同的 LLM 模型。 Docker简介 D…

在Mac上搭建MongoDB环境

最近工作中需要装MongoDB环境,搭建过程中遇到了一些问题,在这里记录一下安装MongoDB环境的方法以及问题的解决方法。有两种安装MongoDB的方法:brew安装和手动安装。 目录 使用Homebrew安装MongoDB 手动安装MongoDB(不使用Homebr…

备战蓝桥杯 Day11(滚动数组优化+完全背包)

01背包的滚动数组优化 【题目描述】 经典0—1背包问题,有n个物品,编号为i的物品的重量为w[i],价值为c[i],现在要从这些物品中选一些物品装到一个容量为m的背包中,使得背包内物体在总重量不超过m的前提下价值尽量大。 #include&…

python_数据分析_numpy库

一、创建ndarray *ndarray是NumPy中表示数组的重要类型 1、使用np.array()创建 *参数列表:[1,2,3,4] 注:(1)、numpy默认ndarray的所有元素的类型是相同的 ​ (2)、如果传入的数据类型不同,会被按照优先级强制转换为同一类型,其…

vue--两种定时任务cron表达式组件比较选择

背景&#xff1a; 使用vue页面中cron表达式的组件&#xff0c;实现定时任务参数配置。 方案1 vue-cron 安装插件 npm install vue-cron --save 全局引入&#xff0c;修改main.js import Vue from vue import VueCron from vue-cron Vue.use(VueCron);页面配置 html<el-…

Java入门-可重入锁

可重入锁 什么是可重入锁? 当线程获取某个锁后&#xff0c;还可以继续获取它&#xff0c;可以递归调用&#xff0c;而不会发生死锁&#xff1b; 可重入锁案例 程序可重入加锁 A.class,没有发生死锁。 sychronized锁 package com.wnhz.lock.reentrant;public class Sychroniz…

多普勒变化率的应用 与 FPGA

1.多普勒变化率是一个描述波源和观察者相对速度变化的物理量&#xff0c;它与加速度有关。 多普勒效应是指当波源和观察者之间存在相对运动时&#xff0c;观察者接收到的波频率与波源发射的频率之间的差异。这种现象在声波、电磁波等多种波动中都会出现。多普勒变化率通常用来…

linux系统内核升级

1.查看旧版本内核 2.导入密钥 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 3.安装yum源 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm4.启用elrepo-kernel仓库并安装最新内核版本 yum --enablerepoelrepo-kernel install …

一文弄明白KeyedProcessFunction函数

引言 KeyedProcessFunction是Flink用于处理KeyedStream的数据集合&#xff0c;它比ProcessFunction拥有更多特性&#xff0c;例如状态处理和定时器功能等。接下来就一起来了解下这个函数吧 正文 了解一个函数怎么用最权威的地方就是 官方文档 以及注解&#xff0c;KeyedProc…

c++实现栈和队列类

c实现栈和队列类 栈(Stack)Stack示意图Stack.cpp 队列(queue)queue 示意图queue.cpp 栈(Stack) Stack示意图 Stack.cpp #pragma once #include "ListStu.cpp"template<typename T> class Stack { public: /* * void push(T& tDate)* 参数一 &#xff1a;…

【OCR专题文章】

目录 一、数据获取及预处理方法篇 二、两阶段算法篇(检测识别) 三、一阶段算法篇(Enc-Dec) 四、拓新篇 本栏聚焦在OCR的相关算法&#xff0c;专栏内文章的代码均已实现。 一、数据获取及预处理方法篇 【数据获取】 合同数据获取&#xff1a;【OCR】【专题系列】二、数据获取-…

解决windows无法访问wsl下docker服务

笔者在初学使用wsl跑docker时,遇到了windows无法访问的问题,并且浏览了大部分的文章,发现并没有起效,在反复试错终于成功之后,总结为以下几点: 1.升级至wsl2 2.将.wslconfig文件(用户文件夹下)中的如下镜像服务关闭删除 networkingModemirrored 3.打开wsl防火墙相应的端口 …

记录解决uniapp使用uview-plus在vue3+vite+ts项目中打包后样式不能显示问题

一、背景 从 vue2uview1 升级到 vue3vitetsuview-plus ,uview组件样式打包后不显示&#xff0c;升级前uview 组件是可以正常显示&#xff0c;升级后本地运行是可以正常显示&#xff0c;但是打包发布成H5后uview的组件无法正常显示&#xff0c;其他uniapp自己的组件可以正常显示…

Vue 中 onclick和@click区别

文章目录 一、直接上结论二、验证代码&#xff0c;可直接运行三、点击结果 一、直接上结论 onclick 只能触发 js的原生方法&#xff0c;不能触发vue的封装方法click 只能触发vue的封装方法&#xff0c;不能触发js的原生方法 二、验证代码&#xff0c;可直接运行 <!DOCTYP…

Vue3 + Ts (使用lodash)

安装 npm i --save lodash使用 import _ from lodash⚠️报警告&#xff1a;&#xff01;&#xff01;&#xff01; 此时还需要安装ts声明文件库 npm install types/lodash -D安装之后重启Vscode还是会提示上面的警告&#xff0c;此时还需在tsconfig.ts里面配置 {"c…

快速将excel/word表格转换为web页面(html)的方法

前言 在进行开发企业信息化建设的过程&#xff0c;应该有很多这样的场景&#xff0c;就是将现有的电子表格记录的方式转换为在数据系统中进行网页上报。也就是需要根据当前一直使用的表格制作一个上传这个表格信息的网页&#xff0c;如果要减少系统的使用学习成本&#xff0c;…

【Day55】代码随想录之动态规划_买卖股票含冷冻期和手续费

文章目录 动态规划理论基础动规五部曲&#xff1a;出现结果不正确&#xff1a; 1. 最佳买卖股票的时机含冷冻期2. 买卖股票的最佳时机含手续费 动态规划理论基础 动规五部曲&#xff1a; 确定dp数组 下标及dp[i] 的含义。递推公式&#xff1a;比如斐波那契数列 dp[i] dp[i-1…

【Elasticsearch专栏 01】深入探索:Elasticsearch的正向索引和倒排索引是什么

文章目录 什么是Elasticsearch的正向索引和倒排索引&#xff1f;1.倒排索引&#xff08;Inverted Index&#xff09;2.正向索引&#xff08;Forward Index&#xff09;3.小结 什么是Elasticsearch的正向索引和倒排索引&#xff1f; 首先&#xff0c;要明确的是&#xff0c;Ela…