Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
一、面试题一-变量和函数声明的提升
- 预解析阶段,js中函数声明和var声明的变量会提升到函数最顶部执行
- 优先级:函数声明的提升高于变量声明的提升
- 函数内部如果用var声明相同名称的外部变量,当在函数查找该变量是,不会在向上查找
- 匿名函数不会提升
二、面试题二-闭包
- 闭包就是能够读取其他函数内部变量的函数
- 优点:可以读取函数内部的变量、将变量始终保存在内存中、可以封装对象的私有属性和私有方法
- 缺点:耗费内存,使用不当容易造成内存溢出的问题
三、面试题三-this
- this总是指向函数的直接调用者
- 如果使用new关键字,this指向new出来的对象
- 在响应事件中,this指向触发这个事件的对象
四、面试题四-map与forEach的区别
- forEach方法就是循环遍历方法,默认有三个参数:遍历的数组的内容item,数组索引index,当前遍历的数组array
- map方法的基本用法与forEach一致,但它会返回一个新数组,所以它的回调函数要有返回值,如果没有就会返回undefined
五、面试题五-箭头函数
- 箭头函数体内的this对象指向定义是所在的对象,而不是使用时所调用的对象(普通函数)
- 不可以作为构造函数,即不可以使用new命令,否则会报错
- 箭头函数体内不存在arguments对象,它体内类似的对象是Rest
- 箭头函数不能作为Generator函数,即不能使用yield命令