前端高频JS面试题(附答案+视频讲解)

高频前端js面试题总结 对应的视频讲解位置

2023前端高频面试题-JS高频面试题(上)_哔哩哔哩_bilibili

目录

1. var let const 的区别?

2. javascript 有哪些基础数据类型?

3. null和undefined区别

4. == 与 === 的区别?

5. js中那些数据在 if 判断时是 false

6. 判断数据类型的方法有哪些,有什么区别

7. JS垃圾回收

8. this指向

9. call、apply、bind

10. 闭包、闭包的使用场景

11. 什么是事件代理/事件委托?

12. 如何阻止事件冒泡?

13. new操作符的实现原理

14. 回流与重绘

15. Javascript原型链

16. 深拷贝浅拷贝

17. 数组去重

18. 数组的方法

19. 箭头函数和普通函数的区别

20. forEach和map方法有什么区别

21. for...in和for...of的区别


1. var let const 的区别?

  1. const 定义常量, 不可以重复赋值    块级作用域   不存在变量提升
  1. var 定义变量,可以重复声明  var 全局作用域或函数作用域    有变量提升
  2. let 定义变量,不可以重复声明 , 块级作用域   不存在变量提升

2. javascript 有哪些基础数据类型?

  • 基础数据类型String、Number、Boolean、Undefined、Null
  • 引用数据类型: Object、Array、Function、Date等
  • Symbol、BigInt是ES6之后新增的 属于基本数据类型
    • Symbol

指的是独一无二的值

    • BigInt

是一种数字类型的数据,它可以表示任意精度格式的整数

3. null和undefined区别

  • 首先 Undefined 和 Null 都是基本数据类型,这两个基本数据类型分别都只有一个值,就是 undefined 和 null。
  • undefined 代表的含义是

未定义,一般变量声明了但还没有定义的时候会返回 undefined

  • null 代表的含义是

空对象。null主要用于赋值给一些可能会返回对象的变量,作为初始化。

4. == 与 === 的区别?

  1. 双等号(==)进行相等判断时,如果两边的类型不一致,会强制类型转化再进行比较。
  2. 三等号(===)进行相等判断时,如果两边的类型不一致,不强制类型准换,直接返回 false

Object.is()

[]==[]

5. js中那些数据在 if 判断时是 false

  • 0、“”、false、null、undefined、NaN 判断为false (6个)
  • 其他皆为true

[]==false 和 ![]==false true

第一个 []==false 转为数字 0==0

第二个 ![]==false 转为布尔 false==false

[]==[] -- >false

js中布尔值为false的六种情况

下面6种值转化为布尔值时为false,其他转化都为true

1、undefined(未定义,找不到值时出现)

2、null(代表空值)

3、false(布尔值的false,字符串"false"布尔值为true)

4、0(数字0,字符串"0"布尔值为true)

5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN===“number”)

6、""(双引号)或’’(单引号) (空字符串,中间有空格时也是true)

注意空数组空对象,负值转的布尔值时都为true

6. 判断数据类型的方法有哪些,有什么区别

判断数据类型的方法

描述

typeof

判断基础数据类型(数组、对象、null都会被判断为object)

instanceof

判断引用数据类型,不能判断基本数据类型

constructor

判断数据的类型

Object.prototype.toString.call()

使用 Object 对象的原型方法 toString 来判断数据类型

 JavaScript类型判断的四种方法

一、typeof

typeof是一个操作符而不是函数,其右侧跟一个一元表达式,并返回这个表达式的数据类型。

返回的结果用该类型的字符串(全小写字母)

用于判断数据类型,返回值为6个[字符串],分别为string、Boolean、number、function、object、undefined。

console.log(typeof undefined) // undefind
console.log(typeof null)   // object
console.log(typeof true)   // boolean
console.log(typeof 43)    // number
console.log(typeof '21')   // string
console.log(typeof {a:1})   // object
console.log(typeof Symbol()) // symbol
console.log(typeof 123n)   // bigint
function a() {}
console.log(typeof a)     // function
var date = new Date()
var error = new Error()
console.log(typeof date)   // object
console.log(typeof error)   // object
​

二、instanceof

instanceof 是用来判断 A 是否为 B 的实例,表达式为:A instanceof B,如果 A 是 B 的实例,则返回 true,否则返回 false。 在这里需要特别注意的是:instanceof 检测的是原型

instanceof用来判断对象,代码形式为obj1 instanceof obj2ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值