2022 最新版前端工程师面试题手册

1 | 前端基础 11

1.1 | HTTP/HTML/浏览器  11

     说一下 http  https  11

•     tcp 三次握手一句话概括  12

     TCP  UDP 的区别 12

     WebSocket 的实现和应用 12

     HTTP 请求的方式 HEAD 方式  13

     一个图片 url 访问后直接下载怎样实现?  14

•     说一下 web Quality(无障碍)  14

     几个很实用 BOM 属性对象方法?  14

     说一下 HTML5 drag api  15

     说一下 http2.0  15

     补充 400  401403 状态码  15

     fetch 发送 2 次请求的原因  16

     CookiesessionStoragelocalStorage 的区别  16

     说一下 web worker 17

      HTML 语义化标签的理解 17

     iframe 是什么?有什么缺点?  17

     Doctype 作用?严格模式与混杂模式如何区分?它们有何意义?  17

     Cookie 如何防范 XSS 攻击 18

     Cookie  session 的区别 18

     一句话概括 RESTFUL 18

      viewport 和移动端布局  18

     click  ios 上有 300ms 延迟原因及如何解决?  18

     addEventListener 参数 19

     cookie sessionStorage localStorage 区别  19

     cookie session 区别  19

     介绍知道的 http 返回的状态码 19

     http 常用请求头  21

•     强,协商缓存 24

      304 25

•     强缓存协商缓存什么时候用哪个  25

     前端优化  26

     GET  POST 的区别 26

     301  302 的区别 27

     HTTP 支持的方法  27

•     如何画一个三角形 27

     状态码 304   200 27

•     说一下浏览器缓存 28

     HTML5 新增的元素 28

     在地址栏里输入一个 URL,到这个页面呈现出来 中间会发生什么?  28

     cookie  session 的区别 localstorage  sessionstorage 的区别29

     常见的 HTTP 的头部 29

     HTTP2.0 的特性  30

     cache-control 的值有哪些  30

     浏览器在生成页面的时候会生成那两颗树?  30

     csrf  xss 的网络攻击及防范 30

     怎么看网站的性能如何  31

     介绍 HTTP 协议(特征)  31

     输入 URL 到页面加载显示完成发生了什么? 31

     说一下对 Cookie  Session 的认知 Cookie 有哪些限制?  31

     描述一下 XSS  CRSF 攻击?防御方法?  32

     知道 304 什么时候用 304?  32

     具体有哪些请求头是跟缓存相关的  32

     cookie  session 的区别 33

     cookie 有哪些字段可以设  33

     cookie 有哪些编码方式?  34

     除了 cookie还有什么存储方式说说 cookie  localStorage 的区别

34

     浏览器输入网址到页面渲染全过程  34

     HTML5  CSS3 用的多吗?你了解它们的新属性吗? 有在项目中用过吗?

34

     http 常见的请求方法  35

     get  post 的区别 35

     说说 302301304 的状态码 35

     web 性能优化 35

     浏览器缓存机制  36

     post  get 区别  36

1.2 | CSS  36

     说一下 css 盒模型 36

     画一条 0.5px 的线 38

     link 标签和 import 标签的区别 38

     transition  animation 的区别  38

     Flex 布局  38

•     BFC(块级格式化上下文用于清楚浮动防止 margin 重叠等  39

     垂直居中的方法  40

     关于 JS 动画和 css3 动画的差异性  41

     说一下块元素和行元素  42

     多行元素的文本省略号  42

•     visibility=hidden, opacity=0display:none  42

•     双边距重叠问题(外边距折叠)  42

     position 属性  比较  43

     浮动清除  43

     css3 新特性 44

•     CSS 选择器有哪些优先级呢  44

•     清除浮动的方法能讲讲吗  44

•     怎么样让一个元素消失讲讲 45

     介绍一下盒模型  45

     position 相关属性 45

     css 动画如何实现 46

     如何实现图片在某个容器中居中的?  46

•     如何实现元素的垂直居中 46

     CSS3 中对溢出的处理  47

     float 的元素 display 是什么 47

     隐藏页面中某个元素的方法  47

     三栏布局的实现方式 尽可能多写 浮动布局时 三个 div 的生成顺序有

没有影响47

     什么是 BFC  48

     calc 属性  48

     有一个 width300height300怎么实现在屏幕上垂直水平居中  48

     displaytable 和本身的 table 有什么区别  49

     position 属性的值有哪些及其区别 49

     z-index 的定位方法 49

     如果想要改变一个 DOM 元素的字体颜色不在它本身上进行操作?  49

      CSS 的新属性有了解过的吗?  49

     用的最多的 css 属性是啥?  50

     line-height  height 的区别 50

•     设置一个元素的背景颜色背景颜色会填充哪些区域?  50

     知道属性选择器和伪类选择器的优先级吗  50

     inline-blockinline  block 的区别 为什么 img  inline 还可以设

置宽高50

      css 实现一个硬币旋转的效果 50

了解重绘和重排吗,知道怎么去减少重绘和重排吗,让文档脱离文档流有

哪些方法52

•     CSS 画正方体三角形  52

     overflow 的原理  54

     清除浮动的方法  54

     box-sizing 的语法和基本用处 54

     使元素消失的方法有哪些?  55

     两个嵌套的 divposition 都是 absolute div 设置 top 属性那么

这个top是相对于父元素的哪个位置定位的。55

•     说说盒子模型 55

     display 55

•     怎么隐藏一个元素 55

     display:none  visibilty:hidden 的区别  56

•     相对布局和绝对布局 position:relative  obsolute。  56

     flex 布局  56

     blockinlineinline-block 的区别 57

     css 的常用选择器 57

     css 布局 57

     css 定位 58

     relative 定位规则 58

     垂直居中  59

     css 预处理器有什么 59

1.3 | JavaScript 59

     get 请求传参长度的误区 59

     补充 get  post 请求在缓存方面的区别  59

     说一下闭  60

     说一下类的创建和继承  60

     如何解决异步回调地狱  62

•     说说前端中的事件流 62

•     如何让事件先冒泡后捕获 62

     说一下事件委托  63

•     说一下图片的懒加载和预加载 63

     mouseover  mouseenter 的区别  63

     JS  new 操作符做了哪些事情 63

•     改变函数内部 this 指针的指向函数(bindapplycall 的区别  63

•     JS 的各种位置 比如 clientHeight,scrollHeight,offsetHeight ,以及

scrollTop,offsetTop,clientTop的区别?64

     JS 拖拽功能的实现 64

     异步加载 JS 的方法 64

     Ajax 解决浏览器缓存问题 65

     JS 的节流和防抖  65

     JS 中的垃圾回收机制  65

     eval 是做什么的  67

•     如何理解前端模块化 67

     说一下 CommonJSAMD  CMD 67

•     对象深度克隆的简单实现 68

     实现一个 once 函数传入函数参数只执行一次 68

     将原生的 ajax 封装成 promise 68

     JS 监听对象属性的改变  69

     如何实现一个私有变量 getName 方法可以访问 不能直接访问 69

     ==和===以及 Object.is 的区别  70

     setTimeoutsetInterval  requestAnimationFrame 之间的区别  70

•     实现一个两列等高布局讲讲思路  71

     自己实现一个 bind 函数 71

      setTimeout 来实现 setInterval 71

     JS 怎么控制一次加载一张图片,加载完后再加载下一张 72

     代码的执行顺序  73

     如何实现 sleep 的效果(es5 或者 es6  73

     简单的实现一个 promise 74

     Function._proto_(getPrototypeOf)是什么?  75

     实现 JS 中所有对象的深度克隆(包装对象Date 对象正则对象 .75

     简单实现 Node  Events 模块 77

     箭头函数中 this 指向举例 78

     JS 判断类型 79

•     数组常用方法 79

     数组去重  79

     闭包  有什么用  79

•     事件代理在捕获阶段的实际应用 80

•     去除字符串首尾空格 80

     性能优化  80

     来讲讲 JS 的闭包吧 80

     能来讲讲 JS 的语言特性吗 81

     如何判断一个数组(讲到 typeof 差点掉坑里)  81

     你说到 typeof,能不能加一个限制条件达到判断条件 81

     JS 实现跨域 81

     JS 基本数据类型  82

     JS 深度拷贝一个元素的具体实现  82

     之前说了 ES6set 可以数组去重是否还有数组去重的方法  82

•     重排和重绘讲讲看 82

     JS 的全排列 83

     跨域的原  83

•     不同数据类型的值的比较,是怎么转换的有什么规则 83

     null == undefined 为什么  84

     this 的指向  哪几种  84

     暂停死区  85

     AngularJS 双向绑定原理 85

     写一个深度拷贝  85

     简历中提到了 requestAnimationFrame请问是怎么使用的 86

     有一个游戏叫做 Flappy Bird就是一只小鸟在飞 前面是无尽的沙漠

上下不断有钢管生成 你要躲避钢管然后小明在玩这个游戏时候老是卡顿甚

至崩溃,说出原因(3-5个)以及解决办法(3-5个).....................................86

•     编写代码满足以下条件:   (1)Hero("37er");执行结果为 Hi! This   is 37er (2Hero("37er").kill(1).recover(30);执行结果为 Hi! This is  37er Kill 1 bug Recover 30 bloods (3Hero("37er").sleep(10).kill(2)  执行结果为 Hi! This is 37er //等待 10s  Kill 2 bugs   //注意为 bugs

(双斜线后的为提示信息,不需要打印)87

     什么是按需加载  88

     说一下什么是 virtual dom  88

     webpack 用来干什么的  88

     ant-design 优点和缺点 88

•     JS 中继承实现的几种方式,  88

     写一个函数第一秒打印 1第二秒打印 2 89

     Vue 的生命周期  89

     简单介绍一下 symbol  90

     什么是事件监听  90

     介绍一下 promise及其底层如何实现  91

•     说说 C++,JavaJavaScript 这三种语言的区别 92

     JS 原型链 原型链的顶端是什么? Object 的原型是什么? Object 的原型

的原型是什么?在数组原型链上实现删除数组重复数据的方法93

     什么是 js 的闭包?有什么作用用闭包写个单例模式 96

     promise+Generator+Async 的使用  96

     事件委托以及冒泡原理 100

     写个函数,可以转化下划线命名到驼峰命名 101

     深浅拷贝的区别和实现  101

     JS  string  startwith  indexof 两种方法的区别 102

     JS 字符串转数字的方法  103

     let const var 的区别  什么是块级作用域 如何用 ES5 的方法实现块

级作用域(立即执行函数),ES6呢103

     ES6 箭头函数的特性 103

     setTimeout  Promise 的执行顺序 103

     有了解过事件模型吗 DOM0 级和 DOM2 级有什么区别DOM 的分级是什么

104

     平时是怎么调试 JS   105

     JS 的基本数据类型有哪些 基本数据类型和引用数据类型的区别 NaN 

什么的缩写 JS 的作用域类型 undefined==null 返回的结果是什么 

undefined与null的区别在哪,写一个函数判断变量类型105

     setTimeout(fn,100);100 毫秒是如何权衡的  106

     JS 的垃圾回收机制 106

     写一个 newBind 函数完成 bind 的功能 107

•     怎么获得对象上的属性比如说通过 Object.key()  107

     简单讲一讲 ES6 的一些新特性 107

     call  apply 是用来做什么?  108

•     解事件代理吗这样做有什么好处 108

     如何写一个继承?  108

     给出以下代码,输出的结果是什么?原因?  for(var i=0;i<5;i++) 

{  setTimeout(function(){  console.log(i); },1000); } console.log(i)

110

     给两个构造函数 A  B如何实现 A 继承 B  110

     问能不能正常打印索引  110

•     如果已经有三个 promiseAB  C想串行执行 该怎么写?  110

     知道 private  public   111

     基础的 js  111

     async  await 具体该怎么用?  111

     知道哪些 ES6ES7 的语法  111

     promise  await/async 的关系 111

     JS 的数据类 112

     JS 加载过程阻塞解决方法 112

     JS 对象类型基本对象类型以及引用对象类型的区别 112

•     JavaScript 中的轮播实现原理?假如一个页面上有两个轮播你会怎么

实现?112

     怎么实现一个计算一年中有多少周?  112

•     面向对象的继承方式 113

     JS 的数据类 114

•     引用类型常见的对象 114

     es6 的常  114

     class  114

     口述数组去重 115

     继承  115

     call  apply 的区别  116

     es6 的常用特性  116

     箭头函数和 function 有什么区别  116

     new 操作符原理  116

     bind,apply,call  117

     bind  apply 的区别  117

     数组的去重  117

     闭包  117

     promise 实现 118

     assign 的深拷贝  119

      promise没有 promise 怎么  120

     事件委托  120

     箭头函数和 function 的区别  120

     arguments  121

     箭头函数获 arguments 121

     Promise 121

     事件代理  121

     Eventloop  122

2 | 前端核心 122

2.1| 服务端编程  122

     JSONP 缺点 122

•     跨域(jsonpajax)  122

     如何实现跨域 122

     dom 是什么你的理解?  123

     关于 dom  api 有什么  123

2.2 | Ajax 123

     ajax 返回的状态  123

     实现一个 Ajax 123

     如何实现 ajax 请求假如我有多个请求 我需要让这些 ajax 请求按照

某种顺序一次执行,有什么办法呢?如何处理ajax跨域124

     写出原生 Ajax 126

  如何实现一个 ajax 请求?如果我想发出两个有顺序的 ajax 需要怎么做?

126

     Fetch  Ajax 比有什么优缺点?  127

     原生 JS  ajax  127

2.3 | 移动 web 开发  127

     知道 PWA   127

     移动布局方案 127

     Rem, Em 128

     flex 布局及优缺点 129

     Rem 布局及其优缺点 130

     百分比布局  131

     移动端适配 1px 的问题  132

•     移动端性能优化相关经验 134

     toB  toC 项目的区别 134

     移动端兼容性 134

     小程序 135

     2X  3X 图适配  135

     图片在安卓上有些设备模糊问题  136

     固定定位布局键盘挡住输入框内容  136

     click  300ms 延迟问题和点击穿透问题  136

     phone  ipad 下输入框默认内阴影 137

     防止手机中页面放大和缩小  137

     pxemrem%vwvhvm 这些单位的区别 138

     移动端适配- dpr 浅析  138

•     移动端扩展点击区域 138

     上下拉动滚动条时卡顿  138

•     长时间按住页面出现闪退 138

     ios  android 下触摸元素时出现半透明灰色遮罩  139

     active 兼容处理  伪类 active 失效  139

     webkit mask 兼容处理  139

     transiton 闪屏  140

     圆角 bug 140

3 | 前端进 141

3.1 | 前端工程化  141

     Babel 的原理是什么?  141

     如何写一个 babel 插件? 141

     你的 git 工作流是怎样的? 145

     rebase  merge 的区别? 150

     git resetgit revert  git checkout 有什么区别  151

     webpack  gulp 区别(模块化与流的区别  153

3.2 | Vue 框架 153

     有使用过 Vue 吗?说说你对 Vue 的理解  153

     说说 Vue 的优缺点 153

     Vue  React 有什么不同?使用场景分别是什么?  154

     什么是虚拟 DOM  154

     请描述下 vue 的生命周期是什么?  154

     vue 如何监听键盘事件?  157

     watch 怎么深度监听对象变化  158

     删除数组用 delete  Vue.delete 有什么区别?  158

     watch 和计算属性有什么区别?  158

     Vue 双向绑定原理 159

     v-model 是什么?有什么用呢?  159

     axios 是什么?怎样使用它?怎么解决跨域的问题?  159

      vue 项目中如何引入第三方库(比如 jQuery?有哪些方法可以做到?

159

     说说 Vue React angularjs jquery 的区别 160

     Vue3.0 里为什么要用 Proxy API 替代 defineProperty API?  160

     Vue3.0 编译做了哪些优化?  160

     Vue3.0 新特性 —— Composition API  React.js  Hooks 的异同点

161

•     Vue3.0 是如何变得更快的?(底层源码)  163

     vue 要做权限管理该怎么做?如果控制到按钮级别的权限怎么做?  164

     vue  created  mounted 这两个生命周期中请求数据有什么区别呢?

164

     说说你对 proxy 的理解  164

3.3 | React 框架 165

     angularJs  React 区别 165

     redux 间件 165

     redux 有什么缺点 165

     React 组件的划分业务组件技术组件  165

     React 生命周期函数 165

     React 性能优化是哪个周期函数?  166

     为什么虚拟 dom 会提高性能?  166

     diff ?  167

     React 性能优化方案 167

     简述 flux 思想  167

     React 项目用过什么脚手架? Mern? Yeoman?  168

     你了解 React   168

     React 解决了什么问题?  168

     React 的协议?  168

     了解 shouldComponentUpdate 吗?  168

     React 的工作原理?  168

     使用 React 有何优点?  169

         (Presentational  component)      (Container 

component)之间有何不同?169

•     类组件(Class component)和函数式组件(Functional component)之间有

何不同?169

     (组件的)状态(state)和属性(props)之间有何不同?  170

     应该在 React 组件的何处发起 Ajax 请求?  170

      React  refs 的作用是什么?  170

     何为高阶组件(higher order component)?  170

     使用箭头函数(arrow functions)的优点是什么?  170

 为什么建议传递给 setState 的参数是一个 callback 而不是一个对象?

171

     除了在构造函数中绑定 this还有其它方式吗?  171

     怎么阻止组件的渲染?  171

     当渲染一个列表时何为 key?设置 key 的目的是什么?  171

     何为 JSX   172

3.4 | Angular 框架  172

     Angular 中组件之间通信的方式 172

     Angualr 的八大组成部分并简单描述 172

     Angular 中常见的生命周期的钩子函数?  173

     Angular 中路由的工作原理  173

     解释 rjx  Angular 中的使用场景  173

1 | 前端基

1.1 | HTTP/HTML/浏览器

    说一下 http  https

参考回答

https  SSL 加密是在传输层实现的

(1)http  https 的基本概念

http: 超文本传输协议是互联网上应用最为广泛的一种网络协议, 是一个客户端和 服务器端请求和应答的标准(TCP),用于从 WWW 服务器传输超文本到本地浏览器的传 输协议它可以使浏览器更加高效使网络传输减少

https: 是以安全为目标的 HTTP 通道简单讲是 HTTP 的安全版 HTTP 下加入 SSL 层 HTTPS 的安全基础是 SSL因此加密的详细内容就需要 SSL

https 协议的主要作用是建立一个信息安全通道来确保数组的传输确保网站的真 实性

(2)http  https 的区别?

http 传输的数据都是未加密的也就是明文的网景公司设置了 SSL 协议来对 http 议传输的数据进行加密处理简单来说 https 协议是由http  ssl 议构建的可进行 加密传输和身份认证的网络协议 http 协议的安全性更高

主要的区别如下

Https 协议需要ca 证书费用较高

http 是超文本传输协议信息是明文传输https 则是具有安全性的 ssl 加密传输协 议

使用不同的链接方式端口也不同一般而言http 协议的端口为 80https 的端口  443

http 的连接很简单是无状态的 HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传 输身份认证的网络协议 http 协议安全

(3)https 协议的工作原理

客户端在使用 HTTPS 方式与 Web 服务器通信时有以下几个步骤如图所示

客户使用 https url 访问服务器则要求 web 服务器建立 ssl 链接

web 服务器接收到客户端的请求之后 会将网站的证书(证书中包含了公钥),返回或 者说传输给客户端

客户端和 web 服务器端开始协商 SSL 链接的安全等级也就是加密等级

客户端浏览器通过双方协商一致的安全等级 建立会话密钥然后通过网站的公钥来 加密会话密钥并传送给网站

web 服务器通过自己的私钥解密出会话密钥

web 服务器通过会话密钥加密与客户端之间的通信

(4)https 协议的优点

使用 HTTPS 协议可认证用户和服务器确保数据发送到正确的客户机和服务器

HTTPS 协议是由SSL+HTTP 协议构建的可进行加密传输身份认证的网络协议要比   http 协议安全可防止数据在传输过程中不被窃取改变确保数据的完整性     HTTPS 是现行架构下最安全的解决方案虽然不是绝对安全但它大幅增加了中间人攻 击的成本

谷歌曾在 2014  8 月份调整搜索引擎算法 并称“比起同等 HTTP 网站采用 HTTPS 加密的网站在搜索结果中的排名将会更高”

(5)https 协议的缺点

https 握手阶段比较费时会使页面加载时间延长 50%增加 10%~20%的耗电

https 缓存不如 http 高效会增加数据开销

SSL 证书也需要钱功能越强大的证书费用越高

SSL 证书需要绑定 IP不能再同一个 ip 上绑定多个域名 ipv4 资源支持不了这种消 耗

    tcp 三次握手一句话概括

参考回答

客户端和服务端都需要直到各自可收发因此需要三次握手

简化三次握手

<img  width="487"  alt="2018-07-10  3  42  11"  src="https://user-          images.githubusercontent.com/17233651/42496289-1c6d668a-8458-11e8-98b3-     65db50f64d48.png">

从图片可以得到三次握手可以简化为 C 发起请求连接 S 确认也发起连接 C 确认我们 再看看每次握手的作用第一次握手 S 只可以确认 自己可以接受 C 发送的报文段第

二次握手C 可以确认 S 收到了自己发送的报文段并且可以确认 自己可以接受 S 发 送的报文段第三次握手S 可以确认 C 收到了自己发送的报文段

    TCP  UDP 的区别

参考回答

(1TCP 是面向连接的 udp 是无连接的即发送数据前不需要先建立链接

(2TCP 提供可靠的服务也就是说 通过 TCP 连接传送的数据无差错不丢失 不重复且按序到达;UDP 尽最大努力交付即不保证可靠交付  并且因为 tcp 可靠 面向连接不会丢失数据因此适合大数据量的交换

(3TCP 是面向字节流 UDP 面向报文并且网络出现拥塞不会使得发送速率降低 (因此会出现丢包对实时的应用比如 IP 电话和视频会议等)。

4TCP 只能是 1  1  UDP 支持 1  1,1 对多

(5TCP 的首部较大为 20 字节 UDP  8 字节

(6TCP 是面向连接的可靠性传输而 UDP 是不可靠的

    WebSocket 的实现和应用

参考回答

(1)什么是 WebSocket?

WebSocket 是 HTML5 中的协议支持持久连续 http 协议不支持持久性连接Http1.0  HTTP1.1 都不支持持久性的链接 HTTP1.1 中的 keep-alive将多个 http 请求合并  1 

(2)WebSocket 是什么样的协议具体有什么优点?

HTTP 的生命周期通过 Request 来界定 也就是 Request 一个 Response那么在     Http1.0 协议中这次 Http 请求就结束了在 Http1.1 中进行了改进是的有一个 connectionKeep-alive也就是说在一个 Http 连接中可以发送多个 Request 接收多个 Response但是必须记住 Http 中一个 Request 只能对应有一个      Response而且这个 Response 是被动的不能主动发起

WebSocket 是基于 Http 协议的或者说借用了Http 协议来完成一部分握手在握手阶 段与 Http 是相同的我们来看一个 websocket 握手协议的实现基本是 2 个属性   upgradeconnection

基本请求如下

GET /chat HTTP/1.1

Host: server.example.com

Upgrade: websocket

Connection: Upgrade

Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==

Sec-WebSocket-Protocol: chat, superchat

Sec-WebSocket-Version: 13

Origin: Example Domain

多了下面 2 个属性

1

2

Upgrade:webSocket

Connection:Upgrade

告诉服务器发送的是 websocket

1

2

3

Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==

Sec-WebSocket-Protocol: chat, superchat

Sec-WebSocket-Version:  13

    HTTP 请求的方式 HEAD 方式

参考回答

head类似于 get 请求只不过返回的响应中没有具体的内容用户获取报头

options允许客户端查看服务器的性能比如说服务器支持的请求方式等等

    一个图片 url 访问后直接下载怎样实现?

参考回答

请求的返回头里面用于浏览器解析的重要参数就是 OSS  API 文档里面的返回 http 头决定用户下载行为的参数

下载的情况下

1. x-oss-object-type: Normal

2. x-oss-request-id:    598D5ED34F29D01FE2925F41

3. x-oss-storage-class: Standard

    说一下 web Quality(无障碍

参考回答

能够被残障人士使用的网站才能称得上一个易用的(易访问的网站 残障人士指的是那些带有残疾或者身体不健康的用户

使 alt 属性

<img src="person.jpg"   alt="this is a person"/>

有时候浏览器会无法显示图像具体的原因有

用户关闭了图像显示

浏览器是不支持图形显示的迷你浏览器

浏览器是语音浏览器(供盲人和弱视人群使用

如果您使用了 alt 属性 那么浏览器至少可以显示或读出有关图像的描述

    几个很实用的 BOM 属性对象方法?

参考回答

什么是 Bom? Bom 是浏览器对象有哪些常用的 Bom 属性呢?

(1)location 对象

location.href-- 返回或设置当前文档的 URL

location.search -- 返回 URL 中的查询字符串部分

 系统发生错误  返回包括(?)后面的 内容?id=5&name=dreamdu

location.hash -- 返回 URL#后面的内容如果没有#返回空      location.host  --  返回 URL 中的域名部分例如www.dreamdu.com location.hostname --  URL 中的主域名部分例如 dreamdu.com

location.pathname -- 返回 URL 的域名后的部分

 系统发生错误  返回/xhtml/

location.port -- 返回 URL 中的端口部分

http://www.dreamdu.com:8080/xhtml/  返回 8080

location.protocol -- 返回 URL 中的协议部分

http://www.dreamdu.com:8080/xhtml/  返回(//)前面的内 http:

location.assign -- 设置当前文档的 URL

location.replace() -- 设置当前文档的 URL并且在 history 对象的地址列表中移除 这个 URL location.replace(url);

location.reload() -- 重载当前页面

(2)history 对象

history.go() -- 前进或后退指定的页面数 history.go(num);

history.back() -- 后退一页

history.forward() -- 前进一页

(3)Navigator 对象

navigator.userAgent -- 返回用户代理头的字符串表示(就是包括浏览器版本信息等 字符串)

navigator.cookieEnabled -- 返回浏览器是否支持(启用)cookie

    一下 HTML5 drag api

参考回答

dragstart事件主体是被拖放元素在开始拖放被拖放元素时触发

darg事件主体是被拖放元素 在正在拖放被拖放元素时触发

dragenter事件主体是目标元素在被拖放元素进入某元素时触发

dragover事件主体是目标元素在被拖放在某元素内移动时触发

dragleave事件主体是目标元素在被拖放元素移出目标元素是触发

drop事件主体是目标元素在目标元素完全接受被拖放元素时触发

dragend事件主体是被拖放元素在整个拖放操作结束时触发

    说一下 http2.0

参考回答

首先补充一下 http 和https 的区别 相比于 http,https 是基于 ssl 加密的 http  议

简要概括 http2.0 是基于 1999 年发布的http1.0 之后的首次更新

提升访问速度(可以对于请求资源所需时间更少访问速度更快 相比 http1.0 允许多路复用多路复用允许同时通过单一的 HTTP/2 连接发送多重请求-响应信息 改善了 http1.1 中浏览器客户端在同一时间针对同一域名下的请求有一定数 量限制(连接数量),超过限制会被阻塞

二进制分帧 HTTP2.0 会将所有的传输信息分割为更小的信息或者帧并对他们进行二 进制编

首部压

服务器端推送

    补充 400  401403 状态码

参考回答

(1)400 状态码请求无效                                                     产生原因                                                                  前端提交数据的字段名称和字段类型与后台的实体没有保持一致                   前端提交到后台的数据应该是 json 字符串类型 但是前端没有将对象 JSON.stringify 转化成字符串                                                             解决方法                                                                  对照字段的名称 保持一致性                                                  obj 对象通过 JSON.stringify 实现序列化

(2)401 状态码当前请求需要用户验证

(3)403 状态码服务器已经得到请求 但是拒绝执行

    fetch 发送 2 次请求的原因

参考回答

fetch 发送 post 请求的时候总是发送 2 第一次状态码是 204第二次才成功?  原因很简单因为你用 fetch 的 post 请求的时候导致fetch 第一次发送了一个    Options 请求询问服务器是否支持修改的请求头如果服务器支持则在第二次中发 送真正的请求

    CookiesessionStoragelocalStorage 的区别

参考回答

共同点:都是保存在浏览器端, 并且是同源的

Cookiecookie 数据始终在同源的 http 请求中携带(即使不需要 即 cookie 在浏 览器和服务器间来回传递 sessionStorage  localStorage 不会自动把数据发给 服务器仅在本地保存 cookie 数据还有路径(path的概念可以限制 cookie 只属 于某个路径下,存储的大小很小只有 4K 左右   (key可以在浏览器和服务器端来回 传递存储容量小只有大约 4K 左右

sessionStorage仅在当前浏览器窗口关闭前有效自然也就不可能持久保持

localStorage始终有效窗口或浏览器关闭也一直保存因此用作持久数据      cookie 只在设置的 cookie 过期时间之前一直有效即使窗口或浏览器关闭(key 本身就是一个回话过程关闭浏览器后消失 session 为一个回话当页面不同即使是 同一页面打开两次也被视为同一次回话

localStoragelocalStorage 在所有同源窗口中都是共享的 cookie 也是在所有同源 窗口中都是共享的(key同源窗口都会共享 并且不会失效不管窗口或者浏览器 关闭与否都会始终生效                                                     补充说明一下 cookie 的作用                                                 保存用户登录状态例如将用户 id 存储于一个cookie 内这样当用户下次访问该页 面时就不需要重新登录了现在很多论坛和社区都提供这样的功能  cookie 还可以设 置过期时间当超过时间期限后cookie 就会自动消失因此系统往往可以提示用

户保持登录状态的时间常见选项有一个月三个 一年等

跟踪用户行为例如一个天气预报网站能够根据用户选择的地区显示当地的天气情 况如果每次都需要选择所在地是烦琐的当利用了 cookie 后就会显得很人性化了 系统能够记住上一次访问的地区当下次再打开该页面时它就会自动显示上次用户 所在地区的天气情况因为一切都是在后 台完成所以这样的页面就像为某个用户所 定制的一样使用起来非常方便定制页面如果网站提供了换肤或更换布局的功能 那么可以使用 cookie 来记录用户的选项例如 背景色分辨率等当用户下次访问 时仍然可以保存上一次访问的界面风格

猜你喜欢

转载自blog.csdn.net/Ct130429/article/details/126127660