面试题-3

1.说一下原型链

原型就是一个普通对象,它是为构造函数实例共享属性和方法,所有实例中引用原型都是同一个对象

使用prototype可以把方法挂载在原型上,内存值保存一致

_proto_可以理解为指针,实例对象中的属性,指向了构造函数的原型(prototype)

2.new操作符具体做了什么?

1.先创建了一个空对象

2.先把空对象和构造函数通过原型链进行链接

3.把构造函数的this绑定到新的空对象身上

4.根据构建函数返回的数据类型,如果是值类型,则返回对象,如果是引用类型,就要返回这个引用类型

3.js是如何实现继承的?

1.原型链继承

2.借用构造函数继承

3.组合式继承

4.ES6的class类继承

4.js的设计原理是什么?

JS引擎 :将代码进行编译

运行上下文 :浏览器调用的api

调用栈 :JS是一个单线程

事件循环 :调用栈任务空了, 从事件队列拿出来,放入调入栈继续执行       

 回调:回调函数

5.JS中关于this指向的问题

1.全局中的this指向

  指向的是window

2.全局作用域或者普通函数中的this

   指向全局window

3.this永远指向最后调用它的那个对象

 在不是箭头函数的情况下

4.new 关键词改变了this的指向

5.apply,call,bind

可以改变this指向,不是箭头函数

6.箭头函数中的this

它的指向在定义的时候就已经确定

当箭头函数它没有this,看外层是否有函数,有就是外层函数的this,没有就是window

7.匿名函数中的this

永远指向了window,匿名函数的执行环境具有全局性,因此this指向window

6.script标签里的async和defer有什么区别?

当没有 async和defer这两个属性的时候

浏览器会立刻加载并执行指定的脚本

有async

加载和渲染后面元素的过程将和script的加载和执行并行进行(异步)

有defer

加载和渲染后面元素的过程将和script的加载并行进行(异步),但是它的执行事件要等

所有元素解析完成之后才会执行

7.setTimeout最小执行时间是多少?
 

html5规定的内容:

setimeout  最小执行时间是4ms

setInterval  最小执行时间是10ms

8.ES5和ES6有什么区别?

JS的组成:ECMAScript   BOM  DOM

ES5:ECMAScript5,2009年ECMAScript的第五次修订,ECMAScript2009

ES6:ECMAScript6,2015年ECMAScript的第六次修订,ECMAScript2015,是JS的下一个版本标准

9.ES6的新特性有哪些?

1.新增块级作用域(let ,const)

 不存在变量提升

 存在暂时性死区的问题

 块级作用域的内容

 不能在同一个作用域内重复声明

2.新增了定义类的语法糖(class)

3.新增了一种基本数据类型(symbol)

4.新增了解构赋值

从数组或者对象中取值,然后给变量赋值

5.新增了函数参数的默认值

6.给数组新增了API

7.对象和数组新增了扩展运算符

8.Promise

 解决回调地狱的问题

自身有all ,reject,resolve,race方法

原型上才有then,catch

把异步操作队列化

三种状态:pending(初始状态),fulfilled(操作成功),rejected(操作失败)

状态:pending---->fulfilled,pending------>rejected,一旦发生,状态就会凝固,不会再变

async   await

同步代码做异步的操作,两者必须搭配使用

async表明函数内有异步操作,调用函数会返回promise

await是组成async的表达式,结果是取决于它等待的内容,如果是promise那就是promise的结果,

如果普通函数就进行链式调用

await后的promise如果是reject状态,那么整个async函数都会中断,后面的代码不执行

9.新增了模块化(import,export)

10.新增了set和map数据结构

set就是不重复

map的key的类型不受限制

11.新增了generator

12.新增了箭头函数

    (1)不能作为构造函数使用

    (2)箭头函数没有arguments

    (3)箭头函数不能使用call,apply,bind去改变this的执行、

    (4)箭头函数没有原型

  (5)this指向外层第一个函数的this

10.call,apply,bind三者有什么区别?

都是改变this指向和函数的调用,call和apply的功能类似,只是传参的方法不同

call方法传的是一个参数列表

apply传递的是一个数组

bind传参后不会立刻执行,会返回一个改变this指向的函数,这个函数还是可以传参的,bind()()

call方法的性能比apply好一些,所以call用的更多一点

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

image图片之间的间隙消除

多个图片排列展示,水平和垂直方向的间隔如何消除 垂直方向 vertical-align 原因: vertical-align属性主要用于改变行内元素的对齐方式,行内元素默认垂直对齐方式是基线对齐(baseline) 这是因为图片属于行内元素&…

双极性集成电路芯片 D7312,可用于小型收录机中作前置放大电路。电源开关冲击噪音小、 反应快

一块双极性集成电路芯片 D7312。可用于小型收录机中作前置放大电路。 主要特点: ● 含ALC电路和ALC检波电路。 ● 外接元件少。 ● 增益高,噪声低。 ● 静态电流小 ● 电源开关冲击噪音小、 反应快 ● 具有过热保护功能 …

爬取全国高校数据 (高校名称,高校所在地,高校类型,高校性质,高校特色,高校隶属,学校网站)

爬取全国高校数据 网站: 运行下面代码得到网站. import base64 # 解码 website base64.b64decode(IGh0dHA6Ly9jb2xsZWdlLmdhb2thby5jb20vc2NobGlzdC8.encode(utf-8)) print(website)分析: 我们需要爬取的字段,高校名称,高校所…

Win10专业版如何重装-Win10专业版重装系统教程

Win10专业版如何重装?Win10专业版系统能够用户带来丰富的功能服务,用户操作需求轻松得到满足。如果我们在Win10专业版电脑中,遇到了系统问题,这时候可以考虑重新安装Win10专业版系统,从而解决系统出现的问题。下面小编…

品牌被侵权 有效治理下架的方法

当一条未授权的低价链接在平台上出现时,会对其他店铺产品影响,影响授权销量,同时影响了品牌对授权经销商的掌控力,也会影响未授权店铺,使其他未授权跟价、低价,所以品牌治理低价链接,不仅是使经…

ImportError: cannot import name ‘url_quote‘ from...

👨🏻‍💻 热爱摄影的程序员 👨🏻‍🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻‍🏫 一位高冷无情的编码爱好者 大家好,我是全栈工…

23111708[含文档+PPT+源码等]计算机毕业设计基于javaweb的旅游网站前台与后台旅景点

文章目录 **论文截图:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 下面是系统运行起来后的部分截图: 论文截图: 实现: 代码片段&#xf…

AE (1)_软件、硬件、驱动控制

#灵感# AE是个值得推敲再推敲的模块,有意思。 目录 相关的硬件-光圈: 相关的软件-曝光-ISO: ISP中的sensor AE 组成: sensor AE的流程及控制: 相关的硬件-光圈: 光圈(F-Number&#xff0…

OpenAI chatGPT又又又出bug!强制开通plus

自奥特曼宣布暂时停止plus用户的注册后,plus账号的价格水涨船高! 现在教大家如何强制开通plus,体验gpt4等各种功能! 如图: 打开官网进入后,按F12打开控制台,在控制台上输入代码 即可强制跳转至付…

实时人眼追踪、内置3D引擎,联想ThinkVision裸眼3D显示器创新四大应用场景

11月17日,在以“因思而变 智领未来”为主题的Think Centre和ThinkVision 20周年纪念活动上,联想正式发布了业内首款2D/3D 可切换裸眼3D显示器——联想ThinkVision 27 3D。该产品首次将裸眼2D、3D可切换技术应用在显示器领域,并拓展了3D技术多…

自学人工智能编程难吗?

在科技飞速发展的时代,人工智能编程已经成为了一个热门的技能。随着诸如机器学习、深度学习等技术的广泛应用,掌握人工智能编程已经成为了一种趋势。那么,自学人工智能编程难吗?答案是:难,但值得&#xff0…

Shopee活动名称怎么填写好?Shopee活动名称设置注意事项——站斧浏览器

虾皮活动名称的设定不仅是一个技巧性的问题,更是一门艺术。通过合理的活动名称设计,可以吸引更多的消费者参与活动,增加活动的曝光度和影响力。 shopee活动名称怎么填写好 简洁明了:活动名称应该尽量简洁明了,能够一…

虾皮产品标题生成器:为您的商品打造吸引眼球的标题

在电商平台上,一个引人注目的商品标题是吸引潜在买家点击进入您的产品页面的第一步。然而,很多商家在创建商品标题时遇到困难,不知道如何吸引更多的目标受众。幸运的是,现在有一个名为知虾工具的强大工具,可以帮助商家…

腾讯云服务器新用户购买优惠多少钱?腾讯云新用户优惠信息来了!

腾讯云服务器新用户购买优惠多少钱?这是每个新手上路的人都会问到的问题。 如果你是一个刚刚接触云服务器的小白用户,不知道该如何选择合适的云服务器,那么你就来对了地方。今天我们将向你介绍腾讯云服务器新用户购买优惠活动,让…

Elasticsearch备份与还原:使用elasticdump

在数据管理的世界里,备份和还原数据是重中之重的日常工作,特别是对于Elasticsearch这样的强大而复杂的搜索引擎。备份不仅可以用于灾难恢复,还可以在数据迁移、测试或者升级等场景中发挥重要作用。 在本博客中,我们将会重点介绍如…

lvgl 画好一个圆弧arc 要了解的相关知识

目录 一、概述 1. css盒子模型示意图2. 圆弧的理解对象3. lvgl 版本 二、功能细节 1. 圆弧的角度 1.1 圆弧的0度在哪里?1.2 设置圆弧角度的1.3 设置圆弧的背景角度 2. 圆弧的半径3. 圆弧的圆角 3.1 设置圆弧的圆角 效果如下: 4. 圆弧的宽度 4.1圆弧主体…

微服务学习 | Eureka注册中心

微服务远程调用 在order-service的OrderApplication中注册RestTemplate 在查询订单信息时,需要同时返回订单用户的信息,但是由于微服务的关系,用户信息需要在用户的微服务中去查询,故需要用到上面的RestTemplate来让订单的这个微…

如何选择合适的数据库管理工具?Navicat Or DBeaver

写在前面 在阅读本文之前,糖糖给大家准备了Navicat和DBeaver安装包,在公众号内回复“Navicat”或“DBeaver”或"数据库管理工具"来下载。 引言 对于测试而言,在实际工作中往往会用到数据库,那么选择使用哪种类型的数…

基于SSM的大学餐厅菜品推荐和点评系统设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

【华为OD机试高分必刷题目】神奇的卡片(C++等差数列实现)

🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,高分通过! 文章目录 【华为OD机试高分必刷题目】神奇的卡片(C等差数列实现&a…