Appearance
基础汇总3
1. 函数声名和函数表达式有什么区别
js
// 函数声明
function functionName(parameter1, parameter2, ...) {
// ...
}
// 函数表达式
const functionName = function(parameter1, parameter2, ...) {
// ...
};
特性 | 函数声明 | 函数表达式 |
---|---|---|
提升 | 是,提升到作用域顶部 | 否,不提升,仅在定义所在的块级作用域内有效 |
命名空间 | 在全局或函数作用域内创建具有相同名称的标识符 | 不创建标识符,因此不会与其他变量或函数冲突 |
递归 | 可以直接调用自身 | 需要先将函数表达式赋值给变量 |
严格模式 | 参数不能省略,必须定义参数名 | 参数可以省略,可以使用默认值 |
代码风格 | 通常用于定义全局函数或在函数开头定义函数 | 通常用于定义函数内部需要使用的辅助函数 |