问答题553/1593js函数有哪几种声明方式?有什么区别?

难度:
2023-03-12 创建

参考答案:

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

  • 函数的声明式写法为:function test(){},这种写法会导致函数提升,所有通过function关键字声明的变量都会被解释器优先编译,不管声明在什么位置都可以调用它,但是它本身并不会被执行。
1test(); // 测试 2function test() { 3 console.log("测试"); 4} 5test(); // 测试
  • 函数的表达式写法为:var test = function(){},这种写法不会导致函数提升,必须先声明后调用,不然就会报错。
1test(); // 报错:TypeError: test is not a function 2var test = function() { 3 console.log("测试"); 4};

二者的区别

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

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

最近更新时间:2024-08-10

赞赏支持

预览

题库维护不易,您的支持就是我们最大的动力!