写在前面
CSDN话题挑战赛第1期
-
活动详情地址:CSDN
-
参赛话题:前端面试宝典
-
话题描述:欢迎各位加入话题创作得小伙伴,如果我没有猜错得话,我觉得你是应该同我一样是一位前端人。如今前端在IT事业中的占比越来越重,已经成为不可缺少的部分,前端技术也是层出不穷,各种技术类、技术框架也蜂拥而出,前端面试的难度也随之增加,如果我们拥有一套前端面试宝典。如果你是应聘者:你就可以从容的solo面试官,如果你是面试官:你就可以将应聘者拷问到骨子里!
总之我们大家一起将自己的面试经验以及学习到的知识点汇聚于此,形成一套体系的前端面试宝典。让读者无论是面试还是学习都能够有非常大的收获。就让我们携手共筑前端面试宝典吧!!! -
创作模板:
携手共筑前端面试宝典
目录
携手共筑前端面试宝典
题目一
考点
答案
题目二
考点
答案
扩展
题目一
1:在基础上,你能说说js的数据类型,js变量和函数声明的提升吗?
考点
js的基本数据类型,以及js变量和函数声明的提升,面试官问的问题属于基础问题,冷静应对,不要眼高手低。
答案
基本数据类型:Number、String、Boolean、Null、Undefined、Symbol、bigInt引用数据类型:object、Array、Date、Function、RegExp
在js中变量和函数的声明会提升到最顶部执行函数的提升高于变量的提升函数内部如果用 var 声明了相同名称的外部变量,函数将不再向上寻找。匿名函数不会提升。
题目二
闭包是什么?能简单举几个例子吗?可以用代码解释一下吗?
考点js中的闭包
答案闭包就是能够读取其他函数内部变量的函数闭包基本上就是一个函数内部返回一个函数好处:
1、可以读取函数内部的变量
2、将变量始终保持在内存中
3、可以封装对象的私有属性和私有方法
坏处:比较耗费内存、使用不当会造成内存溢出的问题
function createCounter() {
let counter = 0
const myFunction = function() {
counter = counter + 1
return counter
}
return myFunction
}
const increment = createCounter()
const c1 = increment()
const c2 = increment()
const c3 = increment()
console.log('example increment
我们在全局执行上下文中创建了一个新的变量createCounter,它得到了指定的函数定义。
同上,第9行。我们在全局执行上下文中声明了一个名为increment的新变量。
我们需要调用createCounter函数并将其返回值赋给increment变量。
调用函数,创建新的本地执行上下文。
在本地执行上下文中,声明一个名为counter的新变量并赋值为 0 。
声明一个名为myFunction的新变量,变量在本地执行上下文中声明,变量的内容是另一个函数定义。如第4行和第5行所定义,现在我们还创建了一个闭包,并将其作为函数定义的一部分。闭包包含作用域中的变量,在本例中是变量counter(值为0)。
返回myFunction变量的内容,删除本地执行上下文。myFunction和counter不再存在。控制权交给了调用上下文,我们返回函数定义和它的闭包,闭包中包含了创建它时在作用域内的变量。
在调用上下文(全局执行上下文)中,createCounter返回的值被指定为increment,变量increment现在包含一个函数定义(和闭包),由createCounter返回的函数定义,它不再标记为myFunction,但它的定义是相同的,在全局上下文中,称为increment。
声明一个新变量(c1)。
查找变量increment,它是一个函数,调用它。
创建一个新的执行上下文,没有参数,开始执行函数。
counter = counter + 1,寻找变量 counter,在查找本地或全局执行上下文之前,让我们检查一下闭包,瞧,闭包包含一个名为counter的变量,其值为0。在第4行表达式之后,它的值被设置为1。它再次被储存在闭包里,闭包现在包含值为1的变量 counter。
我们返回counter的值,销毁本地执行上下文。
返回值(1)被赋给变量c1。
这一次,在闭包中此时变量counter的值是1。它在第12步设置的,它的值被递增并以2的形式存储在递增函数的闭包中,c2被赋值为2。
c3被赋值为3。
扩展
在我们面对面试官的时候,无论是被问到简单的问题还是难度较大的问题,都要考虑全面。尽量使用比较高级一点的专业术语,最好是能够联系到时代热点,这样会给我们的回答加不少分。
写在最后
CSDN话题挑战赛第1期
- 活动详情地址:CSDN



