2021年前端面试题——JS
目录:
DOM事件流有那些阶段?
解释事件冒泡以及如何阻止它?
事件委派/事件委托是什么?
如何理解 JS 中的this关键字?
更改this指向的方法有那些?
apply、call、bind 区别?
讲讲JavaScript 作用域
js函数声明三种方式
js变量声明
JS的数据类型有哪些?
如何判断JS变量的数据类型?
什么是闭包?
谈谈你对JavaScript原型,原型链的理解
谈谈你对面向对象编程思想的理解,它有什么特点?
js 执行机制、事件循环
同步和异步的区别?
对前端性能优化有什么了解?一般都通过那几个方面去优化的?
JavaScript的数组的常用方法
事件捕获、事件冒泡以及事件代理
10.解释事件冒泡以及如何阻止它?
事件委派的使用及作用
1.如何理解 JS 中的this关键字?、如何理解JavaScript的this关键字、5-1 this的指向:
5-2 怎么改变this的指向:
JavaScript 中 call()、apply()、bind() 的用法、更改this指向的方法及其区别
JS作用域与声名提升
1-1 声明
1-1 声明 、较详细的:JS声明变量的六种方式
拓展:如果用 const 声明一个对象,改变对象中某个属性的值会发生什么?
事件委派的使用及作用
1.如何理解 JS 中的this关键字?、如何理解JavaScript的this关键字、5-1 this的指向:
5-2 怎么改变this的指向:
JavaScript 中 call()、apply()、bind() 的用法、更改this指向的方法及其区别
JS作用域与声名提升
1-1 声明
1-1 声明 、较详细的:JS声明变量的六种方式
拓展:如果用 const 声明一个对象,改变对象中某个属性的值会发生什么?
5-2 怎么改变this的指向:
JavaScript 中 call()、apply()、bind() 的用法、更改this指向的方法及其区别
JS作用域与声名提升
1-1 声明
1-1 声明 、较详细的:JS声明变量的六种方式
拓展:如果用 const 声明一个对象,改变对象中某个属性的值会发生什么?
JS作用域与声名提升
1-1 声明
1-1 声明 、较详细的:JS声明变量的六种方式
拓展:如果用 const 声明一个对象,改变对象中某个属性的值会发生什么?
1-1 声明 、较详细的:JS声明变量的六种方式
拓展:如果用 const 声明一个对象,改变对象中某个属性的值会发生什么?
如图:
为什么 对象中的b的值变了?如果换成直接给 a={b:3}可以吗?
为什么会报错?
const实际上保证的,并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。
对于简单类型的数据(数值、字符串、布尔值),值就保存在变量指向的那个内存地址,因此等同于常量。但对于复合类型的数据(主要是对象和数组),变量指向的内存地址,保存的只是一个指向实际数据的指针,const只能保证这个指针是固定的(即总是指向另一个固定的地址),至于它指向的数据结构是不是可变的,就完全不能控制了。
1-2 数据类型的分类:、JavaScript的数据类型详细介绍
1-3 数据类型的判断:
4 闭包、闭包到底是什么?、闭包的概念?优缺点?、破解前端面试(80% 应聘者不及格系列):从闭包说起
用小猪佩奇说明Javascript的原型和原型链
面向对象编程思想
js 执行机制、事件循环
4 闭包、闭包到底是什么?、闭包的概念?优缺点?、破解前端面试(80% 应聘者不及格系列):从闭包说起
用小猪佩奇说明Javascript的原型和原型链
面向对象编程思想
js 执行机制、事件循环
面向对象编程思想
js 执行机制、事件循环
拓展:宏任务、微任务
宏任务:整体代码 script,setTimeout,setInterval
微任务:Promise,process.nextTick
我们知道setTimeout这个函数,是经过指定时间后,把要执行的任务(本例中为task())加入到Event Queue中,又因为是单线程任务要一个一个执行,
如果前面的任务需要的时间太久,那么只能等着,导致真正的延迟时间远远大于你定义的延时时间。https://juejin.cn/post/6844903512845860872#heading-1
我们还经常遇到setTimeout(fn,0)这样的代码,0秒后执行又是什么意思呢?是不是可以立即执行呢?
答案是不会的,setTimeout(fn,0)的含义是,指定某个任务在主线程最早可得的空闲时间执行,意思就是不用再等多少秒了,只要主线程执行栈内的同步任务全部执行完成,栈为空就马上执行。
参考:这一次,彻底弄懂 JavaScript 执行机制
同步和异步的区别?
对前端性能优化有什么了解?一般都通过那几个方面去优化的?
JavaScript的数组的常用方法(一)、js常用数组方法
JavaScript的数组的常用方法(一)、js常用数组方法
持续更新呦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!