admin 管理员组

文章数量: 1184232


2024年4月13日发(作者:gradle常用命令)

2020年web前端最全面试题目及答案

目录

HTML篇 ........................................................................................................................................................ 4

1,doctype的作用是什么 .................................................................................................................... 4

文档解析类型有: ........................................................................................................................... 4

2, 这三种模式的区别是什么? ........................................................................................................ 5

3, HTML、XHTML、XML有什么区别 ............................................................................................ 5

4, 什么是data-属性? ....................................................................................................................... 5

5, 你对HTML语义化的理解?........................................................................................................ 6

6, HTML5与HTML4的不同之处 ..................................................................................................... 6

7有哪些常用的meta标签? ........................................................................................................... 7

8, src和href的区别? ........................................................................................................................ 7

9知道img的srcset的作用是什么? ............................................................................................ 8

10, 还有哪一个标签能起到跟srcset相似作用? ..................................................................... 8

11, script标签中defer和async的区别? ................................................................................... 9

12, 有几种前端储存的方式? .......................................................................................................... 9

13, 这些方式的区别是什么? .......................................................................................................... 9

CSS篇 .......................................................................................................................................................... 10

1, CSS选择器的优先级是怎样的? .............................................................................................. 10

2,link和@import的区别? .............................................................................................................. 11

2,empxrem区别? .......................................................................................................................... 11

3,块级元素水平居中的方法? ........................................................................................................ 11

4, CSS有几种定位方式? ................................................................................................................ 12

5, 如何理解z-index? ...................................................................................................................... 12

6, 如何理解层叠上下文? ............................................................................................................... 12

是什么?............................................................................................................................................ 13

如何产生? ....................................................................................................................................... 13

7, 清除浮动有哪些方法? ............................................................................................................... 13

8,你对css sprites的理解,好处是什么? .................................................................................. 14

是什么 ? ......................................................................................................................................... 14

如何操作? ....................................................................................................................................... 14

好处: ................................................................................................................................................ 14

不足: ................................................................................................................................................ 14

9, 你对媒体查询的理解? ............................................................................................................... 15

是什么 ................................................................................................................................................ 15

如何使用? ....................................................................................................................................... 15

10, 你对盒模型的理解 ...................................................................................................................... 15

是什么?............................................................................................................................................ 15

11, 标准盒模型和怪异盒模型有什么区别? ............................................................................ 16

12, 谈谈对BFC的理解 ..................................................................................................................... 16

是什么?............................................................................................................................................ 16

如何形成? ....................................................................................................................................... 17

作用是什么? .................................................................................................................................. 17

13, 为什么有时候人们用translate来改变位置而不是定位? ........................................... 17

14, 伪类和伪元素的区别是什么? ............................................................................................... 18

是什么?............................................................................................................................................ 18

区别 ..................................................................................................................................................... 18

15, 你对flex的理解? ...................................................................................................................... 18

JS篇 ............................................................................................................................................................. 19

1, 解释下变量提升? ........................................................................................................................ 19

2, 理解闭包吗? ................................................................................................................................. 19

闭包是什么 ....................................................................................................................................... 19

3, JavaScript的作用域链理解吗? ................................................................................................ 20

4, ES6模块与CommonJS模块有什么区别? ........................................................................... 20

ES6 Module和CommonJS模块的区别: ............................................................................. 20

ES6 Module和CommonJS模块的共同点: ........................................................................ 21

5,js有哪些类型? ............................................................................................................................... 21

原始类型:........................................................................................................................................... 21

复杂类型:........................................................................................................................................... 21

6, null与undefined的区别是什么? ........................................................................................... 21

7, 谈谈你对原型链的理解? .......................................................................................................... 22

原型对象............................................................................................................................................ 22

原型链 ................................................................................................................................................ 22

8, 谈一谈你对this的了解? .......................................................................................................... 22

9, 那么箭头函数的this指向哪里? ............................................................................................. 23

10, async/await是什么? ................................................................................................................. 23

11, async/await相比于Promise的优势? ................................................................................. 24

12, JavaScript的参数是按照什么方式传递的? ....................................................................... 24

基本类型传递方式 ......................................................................................................................... 24

复杂类型按引用传递? ................................................................................................................... 24

按共享传递 ....................................................................................................................................... 25

13, 聊一聊如何在JavaScript中实现不可变对象? ................................................................ 25

14, JavaScript的基本类型和复杂类型是储存在哪里的? .................................................... 25

Vue篇 .......................................................................................................................................................... 25

1, 你对MVVM的理解? .................................................................................................................... 25

2, MVVM的优缺点? ........................................................................................................................... 26

优点: .................................................................................................................................................... 26

缺点: .................................................................................................................................................... 27

3, 你对Vue生命周期的理解? ..................................................................................................... 27

4, 异步请求适合在哪个生命周期调用? ................................................................................... 27

5, Vue组件如何通信? ..................................................................................................................... 28

6, computed和watch有什么区别? ............................................................................................. 28

computed: ......................................................................................................................................... 28

watch: ................................................................................................................................................. 28

7, Vue是如何实现双向绑定的? ..................................................................................................... 29

8, Proxy与Property的优劣对比? ....................................................................... 29

Proxy的优势如下: .......................................................................................................................... 29

Property的优势如下: .......................................................................................... 30

9, 你是如何理解Vue的响应式系统的? ..................................................................................... 30

10, 既然Vue通过数据劫持可以精准探测数据变化,为什么还需要虚拟DOM进行diff

检测差异? .............................................................................................................................................. 30

11, Vue为什么没有类似于React中shouldComponentUpdate的生命周期? ........... 31

12, Vue中的key到底有什么用? ................................................................................................ 32

React篇 ...................................................................................................................................................... 32

1, React最新的生命周期是怎样的? ............................................................................................. 32

2, React的请求应该放在哪个生命周期中? ................................................................................ 34

3, setState到底是异步还是同步? .................................................................................................. 35

4, React组件通信如何实现? ........................................................................................................... 36

5, React如何进行组件/逻辑复用? ................................................................................................ 37

6, mixin、hoc、render props、react-hooks的优劣如何? ................................................ 37

7, 你是如何理解fiber的? ............................................................................................................... 39

8, redux的工作流程? ......................................................................................................................... 40

9, react-redux是如何工作的? ........................................................................................................ 41

10, redux与mobx的区别? ............................................................................................................. 41

11, redux中如何进行异步操作? .................................................................................................... 42

12, redux异步中间件之间的优劣? ............................................................................................... 43

HTML篇

1,doctype的作用是什么

DOCTYPE是html5标准网页声明,且必须声明在HTML文档的第一行。来告知浏览器的

解析器用什么文档标准解析这个文档,不同的渲染模式会影响到浏览器对于 CSS 代码甚至

JavaScript 脚本的解析

文档解析类型有:

 BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。(如果没有声明

DOCTYPE,默认就是这个模式)

 CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。

IE8还有一种介乎于上述两者之间的近乎标准的模式,但是基本淘汰了。

2, 这三种模式的区别是什么?

 标准模式(standards mode):页面按照 HTML 与 CSS 的定义渲染

 怪异模式(quirks mode)模式: 会模拟更旧的浏览器的行为

 近乎标准(almost standards)模式: 会实施了一种表单元格尺寸的怪异行为(与IE7之

前的单元格布局方式一致),除此之外符合标准定义

3, HTML、XHTML、XML有什么区别

 HTML(超文本标记语言): 在html4.0之前HTML先有实现再有标准,导致HTML非

常混乱和松散

 XML(可扩展标记语言): 主要用于存储数据和结构,可扩展,大家熟悉的JSON也是相

似的作用,但是更加轻量高效,所以XML现在市场越来越小了

 XHTML(可扩展超文本标记语言): 基于上面两者而来,W3C为了解决HTML混乱问题

而生,并基于此诞生了HTML5,开头加入的做法因此而来,如果

不加就是兼容混乱的HTML,加了就是标准模式。

4, 什么是data-属性?

HTML的数据属性,用于将数据储存于标准的HTML元素中作为额外信息,我们可以通过js

访问并操作它,来达到操作数据的目的。

5, 你对HTML语义化的理解?

语义化是指使用恰当语义的html标签,让页面具有良好的结构与含义,比如

标签就代

表段落,

代表正文内容等等。

语义化的好处主要有两点:

 开发者友好:使用语义类标签增强了可读性,开发者也能够清晰地看出网页的结构,也

更为便于团队的开发和维护

 机器友好:带有语义的文字表现力丰富,更适合搜索引擎的爬虫爬取有效信息,语义类

还可以支持读屏软件,根据文章可以自动生成目录

这对于简书、知乎这种富文本类的应用很重要,语义化对于其网站的内容传播有很大的帮助,

但是对于功能性的web软件重要性大打折扣,比如一个按钮、Skeleton这种组件根本没有

对应的语义,也不需要什么SEO。

6, HTML5与HTML4的不同之处

文件类型声明()仅有一型:。

新的解析顺序:不再基于SGML。

 新的元素:section, video, progress, nav, meter, time, aside, canvas, command,

datalist, details, embed, figcaption, figure, footer, header, hgroup, keygen, mark,

output, rp, rt, ruby, source, summary, wbr。

 input元素的新类型:date, email, url等等。

 新的属性:ping(用于a与area), charset(用于meta), async(用于script)。

 全域属性:id, tabindex, repeat。

 新的全域属性:contenteditable, contextmenu, draggable, dropzone, hidden,

spellcheck。

 移除元素:acronym, applet, basefont, big, center, dir, font, frame, frameset,

isindex, noframes, strike, tt

7有哪些常用的meta标签?

meta标签由name和content两个属性来定义,来描述一个HTML网页文档的元信息,

例如作者、日期和时间、网页描述、关键词、页面刷新等,除了一些http标准规定了一些

name作为大家使用的共识,开发者也可以自定义name。

 charset,用于描述HTML文档的编码形式

 http-equiv,顾名思义,相当于http的文件头作用,比如下面的代码就可以设置http

的缓存过期日期

 viewport,移动前端最熟悉不过,Web开发人员可以控制视口的大小和比例

 apple-mobile-web-app-status-bar-style,开发过PWA应用的开发者应该很熟悉,为

了自定义苹果工具栏的颜色。

8, src和href的区别?

 src是指向外部资源的位置,指向的内容会嵌入到文档中当前标签所在的位置,在请求

src资源时会将其指向的资源下载并应用到文档内,如js脚本,img图片和frame等

元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,知道将该资源加载、

编译、执行完毕,所以一般js脚本会放在底部而不是头部。

 href是指向网络资源所在位置(的超链接),用来建立和当前元素或文档之间的连接,

当浏览器识别到它他指向的文件时,就会并行下载资源,不会停止对当前文档的处理。

9知道img的srcset的作用是什么?

可以设计响应式图片,我们可以使用两个新的属性srcset 和 sizes来提供更多额外的资源

图像和提示,帮助浏览器选择正确的一个资源。

srcset 定义了我们允许浏览器选择的图像集,以及每个图像的大小。

sizes 定义了一组媒体条件(例如屏幕宽度)并且指明当某些媒体条件为真时,什么样的图

片尺寸是最佳选择。

所以,有了这些属性,浏览器会:

 查看设备宽度

 检查 sizes 列表中哪个媒体条件是第一个为真

 查看给予该媒体查询的槽大小

 加载 srcset 列表中引用的最接近所选的槽大小的图像

10, 还有哪一个标签能起到跟srcset相似作用?

元素通过包含零或多个 元素和一个 元素来为不同的显示/设

备场景提供图像版本。浏览器会选择最匹配的子 元素,如果没有匹配的,就选

元素的 src 属性中的URL。然后,所选图像呈现在元素占据的空间中

11, script标签中defer和async的区别?

 defer:浏览器指示脚本在文档被解析后执行,script被异步加载后并不会立刻执行,

而是等待文档被解析完毕后执行。

 async:同样是异步加载脚本,区别是脚本加载完毕后立即执行,这导致async属性下

的脚本是乱序的,对于script有先后依赖关系的情况,并不适用。

12, 有几种前端储存的方式?

cookies、localstorage、sessionstorage、Web SQL、IndexedDB

13, 这些方式的区别是什么?

 cookies: 在HTML5标准前本地储存的主要方式,优点是兼容性好,请求头自带

cookie方便,缺点是大小只有4k,自动请求头加入cookie浪费流量,每个domain

限制20个cookie,使用起来麻烦需要自行封装

 localStorage:HTML5加入的以键值对(Key-Value)为标准的方式,优点是操作方便,

永久性储存(除非手动删除),大小为5M,兼容IE8+

 sessionStorage:与localStorage基本类似,区别是sessionStorage当页面关闭后

会被清理,而且与cookie、localStorage不同,他不能在所有同源窗口中共享,是会

话级别的储存方式

 Web SQL:2010年被W3C废弃的本地数据库数据存储方案,但是主流浏览器(火狐

除外)都已经有了相关的实现,web sql类似于SQLite,是真正意义上的关系型数据

库,用sql进行操作,当我们用JavaScript时要进行转换,较为繁琐。

 IndexedDB: 是被正式纳入HTML5标准的数据库储存方案,它是NoSQL数据库,

用键值对进行储存,可以进行快速读取操作,非常适合web场景,同时用JavaScript

进行操作会非常方便。

CSS篇

1, CSS选择器的优先级是怎样的?

CSS选择器的优先级是:内联 > ID选择器 > 类选择器 > 标签选择器

到具体的计算层面,优先级是由 A 、B、C、D 的值来决定的,其中它们的值计算规则如下:

 A 的值等于 1 的前提是存在内联样式, 否则 A = 0;

 B 的值等于 ID选择器 出现的次数;

 C 的值等于 类选择器 和 属性选择器 和 伪类 出现的总次数;

 D 的值等于 标签选择器 和 伪元素 出现的总次数 。

2,link和@import的区别?

link属于XHTML标签,而@import是CSS提供的。

页面被加载时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载。

import只在IE 5以上才能识别,而link是XHTML标签,无兼容问题。

link方式的样式权重高于@import的权重。

使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用

link标签,因为@import不是dom可以控制的

2,empxrem区别?

 px:绝对单位,页面按精确像素展示。

 em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算

(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

 rem:相对单位,可理解为”root em”, 相对根节点html的字体大小来计算,CSS3

新加属性,chrome/firefox/IE9+支持

3,块级元素水平居中的方法?

 margin:0 auto方法

 flex布局,目前主流方法

 table方法

4, CSS有几种定位方式?

 static: 正常文档流定位,此时 top, right, bottom, left 和 z-index 属性无效,块级

元素从上往下纵向排布,行级元素从左向右排列。

 relative:相对定位,此时的『相对』是相对于正常文档流的位置。

 absolute:相对于最近的非 static 定位祖先元素的偏移,来确定元素位置,比如一个

绝对定位元素它的父级、和祖父级元素都为relative,它会相对他的父级而产生偏移。

 fixed:指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在

屏幕滚动时不会改变,比如那种回到顶部的按钮一般都是用此定位方式。

 sticky:粘性定位,特性近似于relative和fixed的合体,其在实际应用中的近似效果

就是IOS通讯录滚动的时候的『顶屁股』。

5, 如何理解z-index?

CSS 中的z-index属性控制重叠元素的垂直叠加顺序,默认元素的z-index为0,我们可

以修改z-index来控制元素的图层位置,而且z-index只能影响设置了position值的元素。

6, 如何理解层叠上下文?

是什么?

层叠上下文是HTML元素的三维概念,这些HTML元素在一条假想的相对于面向(电脑屏

幕的)视窗或者网页的用户的z轴上延伸,HTML元素依据其自身属性按照优先级顺序占

用层叠上下文的空间。

如何产生?

触发一下条件则会产生层叠上下文:

根元素 (HTML),

z-index 值不为 "auto"的 绝对/相对定位,

一个 z-index 值不为 "auto"的 flex 项目 (flex item),即:父元素 display: flex|inline-

flex,

 opacity 属性值小于 1 的元素(参考 the specification for opacity),

 transform 属性值不为 "none"的元素,

 mix-blend-mode 属性值不为 "normal"的元素,

 filter值不为“none”的元素,

 perspective值不为“none”的元素,

 isolation 属性被设置为 "isolate"的元素,

 position: fixed

7, 清除浮动有哪些方法?

 空div方法:

 Clearfix 方法:上文使用.clearfix类已经提到

 overflow: auto或overflow: hidden方法,使用BFC

8,你对css sprites的理解,好处是什么?

是什么 ?

雪碧图也叫CSS精灵, 是一CSS图像合成技术,开发人员往往将小图标合并在一起之后

的图片称作雪碧图。

如何操作?

使用工具(PS之类的)将多张图片打包成一张雪碧图,并为其生成合适的 CSS。 每张图片

都有相应的 CSS 类,该类定义了background-image、background-position和

background-size属性。 使用图片时,将相应的类添加到你的元素中。

好处:

减少加载多张图片的 HTTP 请求数(一张雪碧图只需要一个请求)

提前加载资源

不足:

CSS Sprite维护成本较高,如果页面背景有少许改动,一般就要改这张合并的图片

加载速度优势在http2开启后荡然无存,HTTP2多路复用,多张图片也可以重复利用一个

连接通道搞定

9, 你对媒体查询的理解?

是什么

媒体查询由一个可选的媒体类型和零个或多个使用媒体功能的限制了样式表范围的表达式

组成,例如宽度、高度和颜色。媒体查询,添加自CSS3,允许内容的呈现针对一个特定范

围的输出设备而进行裁剪,而不必改变内容本身,非常适合web网页应对不同型号的设备而

做出对应的响应适配。

如何使用?

媒体查询包含一个可选的媒体类型和,满足CSS3规范的条件下,包含零个或多个表达式,

这些表达式描述了媒体特征,最终会被解析为true或false。如果媒体查询中指定的媒体类

型匹配展示文档所使用的设备类型,并且所有的表达式的值都是true,那么该媒体查询的

结果为true.那么媒体查询内的样式将会生效。

10, 你对盒模型的理解

是什么?

当对一个文档进行布局(lay out)的时候,浏览器的渲染引擎会根据标准之一的 CSS 基础

框盒模型(CSS basic box model),将所有元素表示为一个个矩形的盒子(box)。CSS 决

定这些盒子的大小、位置以及属性(例如颜色、背景、边框尺寸…)。

盒模型由content(内容)、padding(内边距)、border(边框)、margin(外边距)组成

11, 标准盒模型和怪异盒模型有什么区别?

在W3C标准下,我们定义元素的width值即为盒模型中的content的宽度值,height值

即为盒模型中的content的高度值。

因此,标准盒模型下:

元素的宽度 = margin-left + border-left + padding-left + width + padding-right +

border-right + margin-right

而IE怪异盒模型(IE8以下)width的宽度并不是content的宽度,而是border-left +

padding-left + content的宽度值 + padding-right + border-right之和,height同理。

在怪异盒模型下:

元素占据的宽度 = margin-left + width + margin-right

虽然现代浏览器默认使用W3C的标准盒模型,但是在不少情况下怪异盒模型更好用,于是

W3C在css3中加入box-sizing

12, 谈谈对BFC的理解

是什么?

书面解释:BFC(Block Formatting Context)这几个英文拆解

Block: Block在这里可以理解为Block-level Box,指的是块级盒子的标准

Formatting context:块级上下文格式化,它是页面中的一块渲染区域,并且有一套渲染规

则,它决定了其子元素将如何定位,以及和其他元素的关系和相互作用

BFC是指一个独立的渲染区域,只有Block-level Box参与, 它规定了内部的Block-level

Box如何布局,并且与这个区域外部毫不相干.

它的作用是在一块独立的区域,让处于BFC内部的元素与外部的元素互相隔离.

如何形成?

BFC触发条件:

根元素,即HTML元素

 position: fixed/absolute

 float 不为none

 overflow不为visible

 display的值为inline-block、table-cell、table-caption

作用是什么?

 防止margin发生重叠

 两栏布局,防止文字环绕等

 防止元素塌陷

13, 为什么有时候人们用translate来改变位置而

不是定位?

translate()是transform的一个值。改变transform或opacity不会触发浏览器重新布局

(reflow)或重绘(repaint),只会触发复合(compositions)。而改变绝对定位会触发重

新布局,进而触发重绘和复合。transform使浏览器为元素创建一个 GPU 图层,但改变绝

对定位会使用到 CPU。 因此translate()更高效,可以缩短平滑动画的绘制时间。

而translate改变位置时,元素依然会占据其原始空间,绝对定位就不会发生这种情况。

14, 伪类和伪元素的区别是什么?

是什么?

伪类(pseudo-class) 是一个以冒号(:)作为前缀,被添加到一个选择器末尾的关键字,当

你希望样式在特定状态下才被呈现到指定的元素时,你可以往元素的选择器后面加上对应的

伪类。

伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过::before

来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是

这些文本实际上不在文档树中。

区别

其实上文已经表达清楚两者区别了,伪类是通过在元素选择器上加入伪类改变元素状态,而

伪元素通过对元素的操作进行对元素的改变。

我们通过p::before对这段文本添加了额外的元素,通过 p:first-child改变了文本的样式。

15, 你对flex的理解?

web应用有不同设备尺寸和分辨率,这时需要响应式界面设计来满足复杂的布局需求,Flex

弹性盒模型的优势在于开发人员只是声明布局应该具有的行为,而不需要给出具体的实现方

式,浏览器负责完成实际布局,当布局涉及到不定宽度,分布对齐的场景时,就要优先考虑

弹性盒布局

JS篇

1, 解释下变量提升?

JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运

行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量

提升(hoisting)。

2, 理解闭包吗?

闭包是什么

MDN的解释:闭包是函数和声明该函数的词法环境的组合。

按照我的理解就是:闭包 =『函数』和『函数体内可访问的变量总和』

闭包的作用

闭包最大的作用就是隐藏变量,闭包的一大特性就是内部函数总是可以访问其所在的外部函

数中声明的参数和变量,即使在其外部函数被返回(寿命终结)了之后

基于此特性,JavaScript可以实现私有变量、特权变量、储存变量等

我们就以私有变量举例,私有变量的实现方法很多,有靠约定的(变量名前加_),有靠Proxy

代理的,也有靠Symbol这种新数据类型的。

但是真正广泛流行的其实是使用闭包。

3, JavaScript的作用域链理解吗?

JavaScript属于静态作用域,即声明的作用域是根据程序正文在编译时就确定的,有时也称

为词法作用域。

其本质是JavaScript在执行过程中会创造可执行上下文,可执行上下文中的词法环境中含

有外部词法环境的引用,我们可以通过这个引用获取外部词法环境的变量、声明等,这些引

用串联起来一直指向全局的词法环境,因此形成了作用域链。

4, ES6模块与CommonJS模块有什么区别?

ES6 Module和CommonJS模块的区别:

CommonJS是对模块的浅拷贝,ES6 Module是对模块的引用,即ES6 Module只存只读,

不能改变其值,具体点就是指针指向不能变,类似const

import的接口是read-only(只读状态),不能修改其变量值。 即不能修改其变量的指针

指向,但可以改变变量内部指针指向,可以对commonJS对重新赋值(改变指针指向),但

是对ES6 Module赋值会编译报错。

ES6 Module和CommonJS模块的共同点:

CommonJS和ES6 Module都可以对引入的对象进行赋值,即对对象内部属性的值进行改

变。

5,js有哪些类型?

JavaScript的类型分为两大类,一类是原始类型,一类是复杂(引用)类型。

原始类型:

 boolean

 null

 undefined

 number

 string

 symbol

复杂类型:

 Object

6, null与undefined的区别是什么?

null表示为空,代表此处不应该有值的存在,一个对象可以是null,代表是个空对象,而

null本身也是对象。

undefined表示『不存在』,JavaScript是一门动态类型语言,成员除了表示存在的空值外,

还有可能根本就不存在(因为存不存在只在运行期才知道),这就是undefined的意义所在。

7, 谈谈你对原型链的理解?

这个问题关键在于两个点,一个是原型对象是什么,另一个是原型链是如何形成的

原型对象

绝大部分的函数(少数内建函数除外)都有一个prototype属性,这个属性是原型对象用来创

建新对象实例,而所有被创建的对象都会共享原型对象,因此这些对象便可以访问原型对象的

属性。

原型链

原因是每个对象都有 __proto__ 属性,此属性指向该对象的构造函数的原型。

对象可以通过 __proto__与上游的构造函数的原型对象连接起来,而上游的原型对象也有一

个__proto__,这样就形成了原型链。

8, 谈一谈你对this的了解?

this的指向不是在编写时确定的,而是在执行时确定的,同时,this不同的指向在于遵循了

一定的规则。

首先,在默认情况下,this是指向全局对象的,比如在浏览器就是指向window。

其次,如果函数被调用的位置存在上下文对象时,那么函数是被隐式绑定的。

再次,显示改变this指向,常见的方法就是call、apply、bind

最后,也是优先级最高的绑定 new 绑定。

用 new 调用一个构造函数,会创建一个新对象, 在创造这个新对象的过程中,新对象会自动

绑定到Person对象的this上,那么 this 自然就指向这个新对象。

9, 那么箭头函数的this指向哪里?

箭头函数不同于传统JavaScript中的函数,箭头函数并没有属于自己的this,它的所谓的this

是捕获其所在上下文的 this 值,作为自己的 this 值,并且由于没有属于自己的this,而箭头

函数是不会被new调用的,这个所谓的this也不会被改变.

10, async/await是什么?

async 函数,就是 Generator 函数的语法糖,它建立在Promises上,并且与所有现有的

基于Promise的API兼容。

Async—声明一个异步函数(async function someName(){...})

自动将常规函数转换成Promise,返回值也是一个Promise对象

只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数

异步函数内部可以使用await

Await—暂停异步的功能执行(var result = await someAsyncCall()

本文标签: 元素 浏览器 文档 使用 指向

更多相关文章

老毛桃装机卡在路上?排查攻略,让你一目了然!

17天前

目的 就是用老毛桃安装win10系统。好久不用这些东西了,因为系统装了之后,就很少动了;今天新同事要重装系统,我就帮助重新装了一下,顺便记录一下用法。过程很简单,重点说一下装机过程中遇上的问

Win10怎么样修复edge浏览器?如何重置edge浏览器_edge有问题如何重置

16天前

在Windows10系统桌面右键点击左下角的开始按钮,在弹出的菜单中点击设置菜单项。 Win10怎么样修复edge浏览器?如何重置edge浏览器[多图] 在打开的Windows设置窗口中,点击应用图标。 Win

CPU使用率100%怎么办_cpu占用率100%怎么解决

16天前

CPU使用率100%的全面解决方案 一、快速应急措施 1. 结束高占用进程 Windows系统:按 Ctrl+Shift+Esc打开任务管理器,按CPU使用率

CPU风扇智能调速软件全解析与实战应用

16天前

简介:CPU风扇调速软件是用于监控和调节中央处理器散热风扇转速的重要硬件管理工具,旨在平衡散热效率与运行噪音,确保系统在不同负载下稳定运行。本文以SpeedFan等主流软件为例,深入介绍其工作原理、功能特点及使用方法,涵盖温度传感器数

jQuery-scrollLock 项目常见问题解决方案

15天前

jQuery-scrollLock 项目常见问题解决方案 项目基础介绍 jQuery-scrollLock 是一个基于 jQuery 的开源插件,主要用于锁定指定容器内部的鼠标滚轮滚动,防止滚动事件传播到父元素。该项目

如何将IE浏览器设置为默认浏览器_int 不能是默认浏览器

15天前

如何将IE浏览器设置为默认浏览器电脑上什么浏览器最好用如何将IE浏览器设置为默认浏览器现在的互联网各种多,那么我们如何将自己喜欢用的浏览器设置为默认的浏览器呢? 所用到的工具:电脑IE浏览器 第一步:打开IE浏览器

使用DiskGenius软件进行系统迁移_diskgenius 系统迁移

15天前

使用DiskGenius软件进行系统迁移 一般在旧电脑中只有机械硬盘,开机比较慢,这时当我们在电脑中增加一个固态硬盘时,就需要将系统从之前的机械硬盘迁移到新的固态硬盘中;我们可以使用DiskGenius软件来进行系统迁移。

incite自动标引_知网引用格式incite

15天前

各位科研er们写论文时,常常会需要引用大量参考文献。手动逐一标注编号并引用参考文献,非常耗时,如果引用顺序发生了变化,相应的参考文献也会需要手动进行调整。 沁言学术wordwps插件端,使用InCite功能,您只需要关注创作

CPU使用率监测

14天前

看到 yrt888 提出的问题,抽空研究了一下,发现其实并不像网上那些示例写的,计算其实很简单,只要使用SystemProcessorPerformanceInformation 参数反复调用NtQuerySystemInfor

CPU负载与CPU使用率之区别

14天前

01 简介存储、内存和 CPU(中央处理器)等系统资源不足会极大地影响应用程序的性能。因此,监控这些组件至关重要。 与磁盘和内存不同,监控 Linux 系统上的 CPU 使用率并不那么简单。在本文中,我

如何在电脑上控制手机?电脑控制手机教程_vysor

14天前

要通过电脑控制手机,您可以使用一些专业软件,如Total Control、ApowerMirror、或AirDroid等。这些软件允许您将手机屏幕镜像到电脑,并使用鼠标和键盘控制手机。以下是一个简单的教程,教您如何使用Total Co

删除用户和删除用户主目录_linux删除用户及其主目录

14天前

一、删除用户 1.基本命令(userdel) 1.在Linux系统中,使用userdel命令来删除用户。例如,要删除名为user1的用户,执行命令:userdel user1。 2.这种情况下,默认只会删除用户

Win10正式版怎么卸载IE浏览器?

11天前

Win10正式版怎么卸载IE浏览器? 首先win10正式版自带Microsoft Edga浏览器,其性能及稳定性远优秀于IE浏览器。其次就是我们可以下载第三方浏览器,因此很有必须在Win10系统中卸载IE浏览器。下面就是在Wi

如何卸载IE9 再恢复到IE8?_卸载ie9安装ie8

11天前

E9正式版发布了,一些朋友安装后发现有些功能并不满意,于是想卸载IE9并恢复以前的IE8浏览器。下面就为大家介绍如何卸载IE9恢复IE8浏览器的方法。   IE9浏览器安装后自动覆盖以前的IE8浏览器,如果想恢复以前的IE8,只

【如何清除浏览器某一特定窗口的缓存(Microsoft Edge、Chrome等)】_清除某个网站的缓存

10天前

参考方法:打开 浏览器 开发者工具→ 选择 应用程序标签页 → 在侧栏应用程序分类下 选择 清除缓存→ 点击

老光盘里的 VOB 视频转成 MP4 最简单、最稳定的方法_vob怎么转换成mp4格式 ffmpeg

10天前

要把老光盘里的 VOB 视频转成 MP4,最简单、最稳定的方法就是 使用 FFmpeg或 HandBrake。下面是两种方法,任选一种即可。 ✅ 方法一:

电脑主机后置音频插孔无声?还得Realtek高清晰音频管理器调教_电脑后置音频接口没声音

10天前

0 缘起 一台联想电脑,使用Windows 10 专业版32位,电脑主机后置音频插孔一直没有声音,所以音箱是接在机箱前面版的前置音频插孔上的。 一天不小心捱到了音箱的音频线,音频线头断在音频插孔里面了,前置音频插孔因此

java浏览器_java 模拟浏览器

9天前

JAVA读取指定路径下文件,实现模拟浏览器下载文件,核心代码如下: ** * 浏览器下载 * * @param sourceFilePath 源文件路径:"D:\demo.txt"

MacBook使用技巧:苹果笔记本的PrintScreen截屏快捷键使用方法_prtsc键在哪儿mac

9天前

使用MacBook的朋友都知道,在MacBook的键盘上并没有一般键盘常见的PrintScreen键。那么难道每当需要截图时,我们都只能借助于MacOSX或Windows中内置的截图工具或第三方的截图软件么?这可不是个好办法,一来启

双十二大放价,EasyRecovery数据恢复大师等你带回家!

8天前

今天双十二,小编收到可靠消息:EasyRecovery中文官网会在双十二期间搞限时限量钜惠活动,为了方便大家都能尝鲜最新的EasyRecovery 12版本,特限量出售500套,想要入手这款的可要抓紧哦!活动地址在这

发表评论

全部评论 0
暂无评论