JavaScript零碎面试题
函数表达式和函数声明有什么区别?
函数声明
语法:
1 | function 函数名(参数) { |
函数表达式
语法:
1 | var/let/const 变量=function(参数){ |
函数声明和函数表达式的区别?
函数声明必须带有标识符(函数名称),函数表达式则可以省略
表达式里的名字不能在函数外面用,只能在函数内部用
函数有一个 name 属性,指向紧跟在 function 关键字之后的那个函数名。如果函数表达式没有名字,那 name 属性指向变量名
函数声明会被预解析,函数表达式不会
1 | //1、名字 |
讲一下变量提升(预编译),为什么会有变量提升?
javaScript 在执行之前会先进行预编译,主要做两个工作:
将全局作用域或者函数作用域内所有函数声明提前。
将全局作用域或者函数作用域内所有 var 声明的变量提前声明,并赋值为 undefined。
这就是变量提升。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 缪克立的博客!