面试题day02

目录

1、什么是防抖,什么是节流?

2、如何实现闭包?

3、介绍函数调用时的执行步骤?

4、let、const和var关键字的区别?

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


1、什么是防抖,什么是节流?


    防抖:在事件被触发时,延迟n秒后再触发回调函数,如果n秒内又触发了事件,则会重新开始计算时间(一定时间内最后一次生效)
应用场景
    节流:一段时间内只能触发一次,如果这段时间内触发多次事件,只有第一次生效会触发回调函数,一段时间过后才能再次触发(一定时间内只执行第一次)

    防抖:在规定的时间内,不管触发多少次事件,都只会执行最后一次,这种被称为防抖,防抖控制次数

    节流:在规定的时间内触发事件,只会执行第一次;节流控制频率

2、如何实现闭包?


    闭包:在A函数中创建一个B函数,并且在A函数中返回B函数的引用地址,同时在A函数外面定义变量接收A函数返回的内容
    闭包的好处:
        1、保护私有变量,不被全局污染
        2、延长了变量的生命周期
        3、可以让函数内部的变量,在外部访问
    缺点:外面函数每调用一次,就会在调用栈保留一个执行空间,调用多了话,可能会造成内存溢出/内存泄漏  

3、介绍函数调用时的执行步骤?


    函数的两大阶段:定义阶段和调用阶段
    定义阶段:
        1、在内存开辟空间
        2、把函数体中的代码,存放在该空间中
        3、把该空间的引用地址,返回给函数名
    调用阶段:
        1、根据函数名中的引用地址,获取内存中的函数体
        2、给形参赋值
        3、预解析
        4、在内存中再次开辟一个执行空间
        5、把存储空间中的代码,拿到执行空间中去执行
        6、当执行空间中的代码执行完毕时,销毁执行空间
    执行空间不被销毁:当函数中,如果返回一个引用数据类型,并且在函数外调用的位置创建变量接收时,该执行空间不被销毁
    
        注:闭包最主要就是利用了这个函数执行空间不销毁的逻辑

4、let、const和var关键字的区别?


    (1)块级作用域: 块作用域由 { }包括,let和const具有块级作用域,var不存在块级作用域。块级作用域解决了ES5中的两个问题:
    ● 内层变量可能覆盖外层变量
    ● 用来计数的循环变量泄露为全局变量
    (2)变量提升: var存在变量提升,let和const不存在变量提升,即在变量只能在声明之后使用,否在会报错。
    (3)给全局添加属性: 浏览器的全局对象是window,Node的全局对象是global。var声明的变量为全局变量,并且会将该变量添加为全局对象的属性,但是let和const不会。
    (4)重复声明: var声明变量时,可以重复声明变量,后声明的同名变量会覆盖之前声明的遍历。const和let不允许重复声明变量。
    (5)暂时性死区: 在使用let、const命令声明变量之前,该变量都是不可用的。这在语法上,称为暂时性死区。使用var声明的变量不存在暂时性死区。
    (6)初始值设置: 在变量声明时,var 和 let 可以不用设置初始值。而const声明变量必须设置初始值。
    (7)指针指向: let和const都是ES6新增的用于创建变量的语法。 let创建的变量是可以更改指针指向(可以重新赋值)。但const声明的变量是不允许改变指针的指向。


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


    1 箭头函数比普通函数更加简洁
    2 箭头函数没有自己的this
    3 箭头函数继承来的this指向永远不会改变
    4 call()、apply()、bind()等方法不能改变箭头函数中this的指向
    5 箭头函数不能作为构造函数使用
    6 箭头函数没有自己的arguments
    7 箭头函数没有prototype
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT阿东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值