1. 什么是作用域?

变量 产生作用的区域就叫做作用域

2. 作用域的分类

全局作用域

局部作用域

3.局部作用域的分类

函数作用域

块级作用域

4.作用域链

作用域链的本质是变量查找机制

5.作用域链查找规则是什么?

a. 会优先查找自己的作用域

b. 自己的作用域查找不到的话会往上查找父级直到全局作用域

6.什么是垃圾回收机制

JS 中一种自动回收或释放内存的机制 简称 GC

7.垃圾回收机制有几种算法?

引用计数法:IE采用的引用计数算法, 定义“内存不再使用”的标准很简单,就是看一个对象是否有指向它的引用

如果这个值的被引用了一次,那么就记录次数1 , 如果减少一个引用就减1。 如果引用次数是0 ,则释放内存。但它却存在一个致命的问题:嵌套引用

标记清除法:就是从根部(在JS中就是全局对象)出发定时扫描内存中的对象。 凡是能从根部到达的对象,都是还需要使用的。

无法由根部出发触及到的对象被标记为不再使用,稍后进 行回收

8.什么是闭包?

就是有权访问另一个函数作用域中变量的函数

9.闭包的表现形式?

在一个函数内部创建另外一个函数

10.闭包有什么作用?

封闭数据,实现数据私有,防止数据被意外修改

11.闭包的弊端

容易导致内存泄露

12.什么是变量提升?

使用 var 声明的变量,会被提升到函数或全局作用域的顶部,这个现象叫做变量提升。

13.用哪个关键词会产生变量提升?

var会存在变量提升,let/const 声明的变量不存在变量提升

14.什么是构造函数

是一种特殊的函数,主要用来初始化对象 ,同时可以用构造函数来快速创建多个类似的对象。

15.构造函数创建对象的过程

  1. 创建新对象
  2. 构造函数this指向新对象
  3. 执行构造函数代码,修改this,添加新的属性
  4. 返回新对象

16.伪数组转真数组的方法

1.Array.from

2.Array.prototype.slice.call( )

3…展开运算符

17.什么是JavaScript 中的包装类型

JavaScript 中,基本类型是没有属性和方法的,但是为了便于操作基本类型的值,在调用基本类型的属性或方法时 JavaScript 会在后台地将基本类型的值转换为对象,这些对象就是包装类型

18. JavaScript有哪些数据类型,它们的区别?

JavaScript共有八种数据类型,分别是 Undefined、Null、Boolean、Number、String、Object、Symbol、BigInt

其中 SymbolBigInt 是 ES6 中新增的数据类型

Symbol 代表创建后独一无二且不可变的数据类型,它主要是为了解决可能出现的全局变量冲突的问题。

BigInt 是一种数字类型的数据,它可以表示任意精度格式的整数,使用 BigInt 可以安全地存储和操作大整数,即使这个数已经超出了 Number 能够表示的安全整数范围。

这些数据可以分为原始数据类型和引用数据类型:

栈:原始数据类型(Undefined、Null、Boolean、Number、String、Symbol 、BigInt

堆:引用数据类型(对象、数组和函数)

19.isNaN 和 Number.isNaN 函数的区别

重点在于判断 是不是NaN,而不是 数字

  1. 函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。
  2. 函数 Number.isNaN 只会判断 传入的数据 是不是 一个 NaN,并且不会帮你做类型转换。

20.对原型、原型链的理解

原型,也叫原型对象,构造函数的一个属性,名字是 prototype,它本身也是一个对象类型。在构造函数的原型所添加的成员可以被实例所共享。

原型链,指的基于原型继承的那些对象中,它们是通过 原型 prototype 将彼此联系在一起的,这个关系就叫做原型链。

21.原型链-查找规则

① 当访问一个对象的属性(包括方法)时,首先查找这个对象自身有没有该属性。
② 如果没有就查找它的原型(也就是 proto 指向的 prototype 原型对象)
③ 如果还没有就查找原型对象的原型(Object的原型对象)
④ 依此类推一直找到 Object 为止(null)
proto 对象原型的意义就在于为对象成员查找机制提供一个方向,或者说一条路线

22.什么是递归

函数内部自己调用自己, 这个函数就是递归函数,往往都需要添加终止递归的条件。

23.什么是深拷贝 什么是浅拷贝

  1. 浅拷贝只是针对引用类型数据中的属性做了一层复制,如果被拷贝的属性也是引用类型,那么这个属性只是复制了这个引用地址。

    做了浅拷贝的对象之间可能会相互影响

  2. 深拷贝是针对引用类型数据中的属性做无限层级的复制,不管属性是值类型还是引用类型,会完整复制一份。 其在堆内存中完全开辟了一块内存地址,并将原有的对象完全复制过来存放

    做了深拷贝的两个对象之间相互不会影响

  3. 除了 递归克隆对象、JSON.stringify 两种方式做的拷贝,其他方法全部都是浅拷贝

24.call、apply、bind的区别

  1. 他们三都可以修改 this 指向,
  2. call、apply 在修改 this 指向的同时也会调用原函数、bind 只会返回修改 this 指向后的函数
  3. callapply 接收参数的方式不一样,call 类似普通函数一样接收参数、apply 接收的参数必须都放在一个数组内。

25.什么是防抖和节流

  1. 所谓节流,就是在连续触发的行为中控制它在 n 秒中只执行一次 可以用在 轮播图点击效果 、 鼠标移动、页面尺寸缩放 resize、滚动条滚动 等场景
  2. 所谓防抖,在单位时间内,某个动作只能执行一次,如果在单位时间内多次触发,那么只有最后一次有效,可以用在 搜索框 业务中

二、Ajax面试题

26.HTTP 状态码

成功(2XX)

状态码 原因短语 说明
200 OK 表示从客户端发来的请求在服务器端被正确处理
201 Created 请求已经被实现,⽽且有⼀个新的资源已经依据请求的需要⽽建⽴
通常是在POST请求,或是某些PUT请求之后创建了内容, 进行的返回的响应
202 Accepted 请求服务器已接受,但是尚未处理,不保证完成请求
适合异步任务或者说需要处理时间比较长的请求,避免HTTP连接一直占用
204 No content 表示请求成功,但响应报⽂不含实体的主体部分
206 Partial Content 进⾏的是范围请求, 表示服务器已经成功处理了部分 GET 请求
响应头中会包含获取的内容范围 (常用于分段下载)

重定向(3XX)

状态码 原因短语 说明
301 Moved Permanently 永久性重定向,表示资源已被分配了新的 URL
比如,我们访问 http

2023前端常见面试题大全相关推荐

  1. 前端常见面试题及答案

    文章转自http://www.cnblogs.com/syfwhu/p/4434132.html 前言 本文是在GitHub上看到一个大牛总结的前端常见面试题,很多问题问的都很好,很经典.很有代表性. ...

  2. 前端常见面试题---flex:1 是什么?

    前端常见面试题-flex:1 是什么 文章目录 前端常见面试题---flex:1 是什么 Flex-grow Flex-shrink Flex-basis flex=1得应用 一个高度自适应的div, ...

  3. web前端常见面试题

    Vue面试题 生命周期函数面试题 1.什么是 vue 生命周期 2.vue生命周期的作用是什么 3.第一次页面加载会触发哪几个钩子 4.简述每个周期具体适合哪些场景 5.created和mounted ...

  4. 前端常见面试题之----js单线程,微任务宏任务

    js单线程,微任务宏任务 前言 一.什么是单线程? 二.为什么JS是单线程? 三.任务队列 1. 什么是任务队列 2. 什么是微任务宏任务 四.常见面试题例子 总结 前言 他来了他来了,前端必问题之一 ...

  5. 前端常见面试题 - JS篇

    以下会是JS常见面试题: 面试题将会以系列不定时更新,编写不宜,如有用到,请动动小手关注一下. 1. 简述ES6 1. let: 块级作用域. 2. const: 常量; 块级作用域; 一旦声明, 则 ...

  6. 2022年前端Vue常见面试题大全(三万长文)持续更新

    目录 1.Vue和React有什么不同?使用场景分别是什么? 2.axios是什么?怎么使用它,怎么解决跨域? 3.说说Vue,React,angularjs,jquery的区别 4.什么阶段(生命周 ...

  7. 2022年前端Vue常见面试题大全(三万长文)持续更新...

    目录 1.Vue和React有什么不同?使用场景分别是什么? 2.axios是什么?怎么使用它,怎么解决跨域? 3.说说Vue,React,angularjs,jquery的区别 4.什么阶段(生命周 ...

  8. 后端java常见面试题大全

    前言:本篇文章可以让你顺利通过大厂一轮面试(算法除外),大厂二轮,此篇文章展示面还是不够的,需要自信进行扩展,请仔细甄别. 一,技术面试中的几个注意点: 1 面试时,你熟悉的问题要和面试官多聊,不要为 ...

  9. web前端常见面试题总结

    人生的路上少不了尝试,人人都是打工人,但愿这份面试题可以帮助到你 H5有哪些新特性? 绘画canvas(随时随地绘制2D图形).svg(描述XML中的2D图形)元素 语义化标签header.ment. ...

最新文章

  1. Java源码下载和阅读(JDK1.8/Java 11)
  2. NEUQ 2015: Bitmap(二维hash)
  3. 【oracle】关于创建表时用default指定默认值的坑
  4. pku acm 2140 Herd Sums http://acm.pku.edu.cn/JudgeOnline/problem?id=2140
  5. 认识事件冒泡和事件捕获
  6. Git 源码禁止使用 C 标准库中容易被错用的函数
  7. linux下访问西门子S7,Siemens SIMATIC S7-1200 CPU开放重定向漏洞(CVE-2015-1048)
  8. python代码性能优化技巧
  9. python自动化办公excel-自动化办公:python操作Excel
  10. Docker 中的网络管理与集群构建
  11. 今日头条首次公开算法原理(附全文详解)
  12. windows系统背景淡绿护眼色设置
  13. 第六章、Tiny4412 U-BOOT移植六 Nand Flash源码分析
  14. a或b search vim_vim入门,进阶与折腾
  15. python鸭子类型与协议理解
  16. 百度网盘15G邀请码
  17. DELL T410服务器 重装
  18. kali linux adb 安装教程,kali linux 使用scrcpy手机投屏
  19. opencv HSV色彩空间 追踪特定颜色
  20. zynq DMA 函数XAxiDma_SimpleTransfer的用法

热门文章

  1. QT软件如何设置为护眼配色
  2. Unable to get repr for <class torch.Tensor>
  3. EEPROM - AT24C02
  4. 使用Unity开发手机AR项目经验分享
  5. 河南专升本2018年高等数学真题
  6. Android Studio 使用svg格式图片
  7. 四维几何世界中的盒子
  8. 易能机器人_江西工程学院在江西省大学生智能机器人大赛中获佳绩
  9. 我们为什么做不好软件项目?做项目时间都浪费在反复奸奸杀杀,杀杀奸奸上了...
  10. 『Reprint』 复杂表单应用解耦,淘宝机票订单实践