面试题-3

news2024/7/6 13:25:24

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用的更多一点

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

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

相关文章

魔众文库系统 v5.6.0 DWG文件格式支持,部分数据封面显示异常,定时调度清理临时文件

魔众文库系统基于文档系统知识,建立平台与领域,打造流量、用户、付费和变现的闭环,帮助您更好的搭建文库系统。 魔众文库系统发布v5.6.0版本,新功能和Bug修复累计17项,DWG文件格式支持,部分数据封面显示异…

SpringBoot-集成Kafka详解

SpringBoot集成Kafka 1、构建项目 1.1、引入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.5.RELEASE</version> </parent> <dependenci…

DevExpress中文教程 - 如何在macOS和Linux (CTP)上创建、修改报表(上)

DevExpress Reporting是.NET Framework下功能完善的报表平台&#xff0c;它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集&#xff0c;包括数据透视表、图表&#xff0c;因此您可以构建无与伦比、信息清晰的报表。 DevExpress Reports — 跨平台报表组件&#x…

AnimateDiff搭配Stable diffution制作AI视频

话不多说&#xff0c;先看视频 1. AnimateDiff的技术原理 AnimateDiff可以搭配扩散模型算法&#xff08;Stable Diffusion&#xff09;来生成高质量的动态视频&#xff0c;其中动态模型&#xff08;Motion Models&#xff09;用来实时跟踪人物的动作以及画面的改变。我们使用 …

[ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧

文章目录 一、Amazon CodeWhisperer 简介1.1 CodeWhisperer 是什么1.2 Amazon CodeWhisperer 是如何工作的 二、Amazon CodeWhisperer 的优势和功能2.1 Amazon CodeWhisperer 的优势2.2 Amazon CodeWhisperer 的代码功能 三、Amazon CodeWhisperer 安装3.1 安装到 IntelliJ IDE…

〖大前端 - 基础入门三大核心之JS篇㊱〗- JavaScript 的DOM节点操作

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;不渴望力量的哈士奇(哈哥)&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

股票魔法师第二阶段趋势模板选股公式,寻找上涨趋势

对于股票运行的阶段&#xff0c;不同的股票分析方法有着不同的划分方式。从传统的主力运作分析&#xff0c;可以分为吸筹、洗盘、试盘、拉升、出货五个阶段。在波浪理论中&#xff0c;一个完整的上升或下降周期包含8浪&#xff08;其中5浪是主浪、3浪是调整浪&#xff09;。在缠…

Gdevops北京站 2023年全球敏捷运维峰会-核心PPT资料下载

一、峰会简介 2023 Gdevops全球敏捷运维峰会-北京站成功举办&#xff0c;一众产学研界技术大佬与新锐专家&#xff0c;以智能为主线&#xff0c;就数据库、运维、架构、金融科技等领域进行了前沿技术与实践经验交流&#xff0c;一同畅聊AIGC、云原生、数智化转型下的新机遇。 …

【LeetCode刷题-滑动窗口】--159.至多包含两个不同字符的最长子串

159.至多包含两个不同字符的最长子串 方法&#xff1a;滑动窗口 定义两个指针left和right作为窗口的边界&#xff0c;将两个指针都设定在位置0&#xff0c;然后向右移动right指针&#xff0c;直到窗口内不超过两个不同的字符&#xff0c;如果某一点我们得到了3个不同的字符&am…

市县镇一体化视频会议系统

随着网络技术的飞速发展&#xff0c;县市各部门建成了业务专用通信网络。利用专用通信网络&#xff0c;省一市-县基本上都开通了局域网视频会议系统。我们在市局各科室和各县局间建成了专网跨网段的视频会议系统。连通宝视频会议系统建设方案软硬一体&#xff0c;可实现多点间语…

基于STM32的蓝牙低功耗(BLE)通信方案设计与实现

蓝牙低功耗&#xff08;Bluetooth Low Energy&#xff0c;简称BLE&#xff09;是一种能够在低功耗环境下实现无线通信的技术。在物联网应用中&#xff0c;BLE被广泛应用于传感器数据采集、健康监测设备、智能家居等领域。本文将基于STM32微控制器&#xff0c;设计并实现一个简单…

⑧【MySQL】数据库查询:内连接、外连接、自连接、子查询、多表查询

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 内连接、外连接、自连接、子查询、多表查询 ⑧…

汽车ECU的虚拟化技术初探(三)--U2A虚拟化辅助功能分析1

目录 1.基本概述 1.1 U2A虚拟化辅助功能 1.2 U2A虚拟化使能和资源分配 2. U2A架构概述 3. CPU运行模式 3.1 虚拟化模式 3.2 限制运行模式 3.3 权限运行模式 3.4 CPU运行模式小结 4.小结 1.基本概述 1.1 U2A虚拟化辅助功能 在汽车ECU的虚拟化技术初探(二)-CSDN博客中…

MyBatis #{} 和 ${} 的区别

前言&#xff1a; #{} 和 ${} 的区别是 MyBatis 中一个常见的面试题&#xff0c;#{} 和 ${} 是MyBatis 中获取参数的两种方式&#xff0c;但我们在项目中大多数使用的都是 #{} 来获取参数&#xff0c;那么它们两个有什么区别呢&#xff1f; 区别 一. #{} 采用预编译 SQL&…

鸿蒙4.0开发笔记之DevEco Studio如何使用Previewer窗口预览器(一)

一、预览器作用 DevEco Studio预览器概况在HarmonyOS应用开发过程中&#xff0c;通过使用预览器&#xff0c;可以查看应用的UI效果&#xff0c;方便开发者实时查看应用的运行效果&#xff0c;随时调整代码。 二、打开Previewer预览器 1、正常启动 打开预览器的位置在DevEco…

Docker Swarm: 容器编排的力量和优势深度解析

文章目录 Docker Swarm的核心概念1. 节点&#xff08;Node&#xff09;2. 服务&#xff08;Service&#xff09;3. 栈&#xff08;Stack&#xff09; 使用Docker Swarm1. 初始化Swarm2. 加入节点3. 创建服务4. 扩展和缩减服务5. 管理栈6. 管理服务更新 Docker Swarm的优势深度解…

03.webpack中hash,chunkhash和contenthash 的区别

hash、contenthash 和 chunkhash 是通过散列函数处理之后&#xff0c;生成的一串字符&#xff0c;可用于区分文件。 作用&#xff1a;善用文件的哈希值&#xff0c;解决浏览器缓存导致的资源未及时更新的问题 1.文件名不带哈希值 const path require(path) const HtmlWebpac…

DMA原理和应用

目录 1.什么是DMA 2.DMA的意义 3.DMA搬运的数据和方式 4.DMA 控制器和通道 5.DMA通道的优先级 6.DMA传输方式 7.DMA应用 实验一: 内存到内存搬运 CubeMX配置&#xff1a; ​编辑用到的库函数&#xff1a; 代码实现思路&#xff1a; 实验二: 内存到外设搬运 CubeMX…

html-网站菜单-点击显示导航栏

一、效果图 1.点击显示菜单栏&#xff0c;点击x号关闭&#xff1b; 2.点击一级菜单&#xff0c;展开显示二级&#xff0c;并且加号变为减号&#xff1b; 3.点击其他一级导航&#xff0c;自动收起展开的导航。 二、代码实现 <!DOCTYPE html> <html><head>&…

Apache Doris (五十四): Doris Join类型 - Bucket Shuffle Join

🏡 个人主页:IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 🚩 私聊博主:加入大数据技术讨论群聊,获取更多大数据资料。 🔔 博主个人B栈地址:豹哥教你大数据的个人空间-豹哥教你大数据个人主页-哔哩哔哩视频 目录