JS面试题

 目录

1、说一说常见的数据类型?

2、var、const和let区别?

4、如何判断JS数据类型?

5、讲一下闭包? 

6、什么是事件代理?

7、事件循环?

8、什么是宏任务和微任务?

9、JS运行机制,代码执行机制?

10、数组常见的方法:

11、说一说js的垃圾回收机制

12、原型链?

13、JS中new操作符做了哪些事情?

14、如何理解JS中的面向对象的?

15、说一说promise?

16、你知道call、bind、apply的区别吗?

17、数组去重?

18、说一说防抖和节流?

19、ES6新增数组方法? 

20、延迟加载JS有哪些方式?

21、null和undefined的区别?

22、slice是干嘛的、splice是否会改变原数组?

23、JS的继承方式有哪些?

24、JS的深浅拷贝?

25、localStorage、sessionStorage、cookie的区别?

26、箭头函数和普通函数的区别?



1、说一说常见的数据类型?

基本数据类型:String、Number、Boolean、Undefined、Null、Symbol、BigInt

引用数据类型:object(array、function、date、math、Reg)

2、var、const和let区别?

var声明的变量为全局作用域、而let声明的变量为块级作用域、const声明的常量为块级作用域。var声明的变量存在变量提升,而const和let不存在变量的提升。var可以重复声明同一个变量、let和const不能声明同一个变量,const声明的值不能修改,但是如果const声明的是一个对象,对象里面的属性和值可以修改.

3、ES6新增的特性

let、const,箭头函数、模板字符串、解构赋值、扩展运算符、set、map、promise对象。

4、如何判断JS数据类型?

typeOf:返回判断数据的类型。对于简单数据类型,除了null返回object,其他都可以正确判断。对于引用数据类型,除了function外都会返回object。

instanceof:判断对象的原型链__proto__上是否存在构造函数的原型prototype,只能判断引用数据类型,不能判断基本数据类型,常用来判断a是否为b的实例。

object.prototype.toString.call():返回类型为[object 数据类型]

5、讲一下闭包? 

函数嵌套函数,内部函数就是闭包。内部函数可以访问外部函数中的变量,内部函数没有执行完毕,外部函数中的变量不会被销毁。作用:封装一段代码,避免全局变量污染问题。

6、什么是事件代理?

事件代理也叫事件委托。就是把原本绑在子元素上的点击事件绑定在父元素身上,通过事件冒泡原理父元素可以监听到子元素上的点击事件,触发相应的操作。举例:ul中li标签的事件监听,把原本绑定在li上边的监听事件绑定在ul上,这样的好处是可以实现动态元素的绑定。

7、事件循环?

由于js为单线程,当遇到同步任务和异步任务时,一般把同步任务放在运行栈中,当遇到异步任务的时候会把异步任务放到任务队列中,直到同步任务执行完毕之后再执行异步任务,由于一次只能处理一个异步任务,所以处理完一个异步任务后又会在任务队列中查找下一个任务,以次循环往复直到执行完最后一个任务就称为事件循环。

8、什么是宏任务和微任务?

宏任务:计时器、ajax、dom事件

微任务:promise.then、process.nextTick

9、JS运行机制,代码执行机制?

JS为单线程,一个任务执行完毕才能执行下一个任务。执行顺序为同步程序执行完成后,执行异步程序

(1)同步任务(2)微任务(3)宏任务

10、数组常见的方法:

增:push(末尾)、unshift(开头)、concat(连接两个数组)

删:pop(末尾)、shift(开头)splice(第一个参数为开始位置、第二个参数为删除数量)、slice

查:indexOf()返回要查找元素在数组中的位置,没找到返回-1、in

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值