JavaScript中是否可以在传统function声明方式中使用const关键字?
JS函数声明语法问题解答
首先给出明确结论:传统的function func() {}格式的函数声明语法,不能和const、let、var这类变量声明关键字搭配使用,核心原因是JS中两类函数定义的语法规则完全独立:
- 函数声明(Function Declaration):语法规则要求直接以
function关键字开头,完整格式为function 函数名(参数列表) { 函数执行逻辑 }。这种定义方式本身就会在当前作用域内创建一个和函数名绑定的标识符,不需要额外添加变量声明关键字,强行添加会直接触发语法错误,比如const function test() {}是完全不合法的写法,JS引擎运行时会直接抛出SyntaxError。 - 函数表达式(Function Expression):是将函数作为值赋值给变量的写法,这种才需要搭配变量声明关键字使用,我们平时写的箭头函数本质就属于函数表达式的一种,普通函数也可以写成函数表达式的格式:
// 普通函数表达式 const func = function() {} // 箭头函数表达式 const func = () => {}
补充两个写法的常见差异:
- 函数声明存在作用域提升特性,你可以在声明语句之前调用该函数,不会报错
- 用
const声明的函数表达式不存在提升,必须先完成声明才能调用,否则会抛出引用错误
内容的提问来源于stack exchange,提问作者Ayush Chittranshi
相关产品推荐
相关产品推荐

