Skip to content

js函数有哪几种声明方式?有什么区别?

Posted on:2024年8月10日 at 17:07

表达式声明式 两种函数声明方式

test(); // 测试
function test() {
  console.log("测试");
}
test(); // 测试
test(); // 报错:TypeError: test is not a function
var test = function () {
  console.log("测试");
};

二者的区别

//函数声明式
function greeting() {
  console.log("hello world");
}
//函数表达式
var greeting = function () {
  console.log("hello world");
};
  1. 函数声明式变量会声明提前 函数表达式变量不会声明提前
  2. 函数声明中的函数名是必需的,而函数表达式中的函数名则是可选的
  3. 函数表达式可以在定义的时候直接在表达式后面加()执行,而函数声明则不可以。
function fun(){
   console.log('我是一个函数声明式')
}();   //unexpected token

var foo = function (){
    console.log('我是一个函数表达式')
}();   //我是一个函数表达式

  1. 自执行函数即使带有函数名,它里面的函数还是属于函数表达式。
(function fun() {
  console.log("我是一个函数表达式");
})(); //我是一个函数表达式

因为函数只是整个自执行函数的一部分。

原文转自:https://fe.ecool.fun/topic/86c1abd9-9552-42ab-93d5-16076a877db0