20200829岳浩天

知识

1.var n=5;求var num=n+++++n+n+++++n+n

拆分成n++ + ++n + n++ + ++n +n

​ 5 + 7 + 7 + 9 +9

2.typeof返回的类型:

object、undefined、string、number、boolean、function

3.函数声明与函数表达式的区别?

相同点:两者都可以创建函数。

不同点:函数声明可以存在函数提升(前),函数表达式不存在函数提升(前)。

​ //函数声明

​ function myFunction(){}
​ //函数表达式

​ var myFunc = function(){};

闭包是什么,有什么特性,对页面有什么影响?

①什么是闭包?“官方”的解释:所谓“闭包”,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。通俗的讲就是函数a的内部函数b,被函数a外部的一个变量引用的时候,就创建了一个闭包,或者说闭包是将函数内部和外部连接起来的桥梁,即为函数嵌套函数,内部的函数调用外部函数的变量或者参数(简单来说,Javascript闭包就是在另一个作用域中保存了一份它从上一级函数或作用域取得的变量(键值对),而这些键值对是不会随上一级函数的执行完成而销毁)②闭包的特性

(1)、封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;

(2)、持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然存在;

③对页面的影响?

(1)、由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成页面性能的问题

(2)、闭包和全局变量一样,如果大量使用可能会造成内存泄漏

评论