JS中函数声明与函数表达式的区别

1、函数定义

JavaScript 中定义函数最常用的方式是函数声明函数表达式。这两种技术非常相似,有时甚至难以区分,它们之间还是存在着微妙的差别。

JavaScript 定义函数的最基本方式是函数声明

在这里插入图片描述
函数声明必须独立,但也能够被包含在其他函数或代码块中

// 全局独立声明函数tom
function tom() {
    
     
  return "tom here"; 
}
// 全局独立声明函数jerry
function jerry() {
    
     
  // 在jerry函数体中声明函数hiddenTom
  function hiddenTom() {
    
     
    return "jerry here"; 
  }
  return hiddenTom(); 
} 

函数表达式:

JavaScript中的函数是第一类对象,除此以外也就意味着它们可以通过字面量创建,可以赋值给变量和属性,可以作为传递给其他函数的参数或函数的返回值。

var a = 3;
myFunction(4); 

同样,在相同位置可以用函数字面量:

var a = function() {
    
    }; 
myFunction(function(){
    
    });

这种总是其他表达式的一部分的函数(作为赋值表达式的右值,或者作为其他函数的参数)叫作函数表达式。

函数声明和函数表达式除了在代码中的位置不同以外,还有一个更重要的不同点是:对于函数声明来说,函数名是强制性的,而对于函数表达式来说,函数名则完全是可选的。

2、函数声明面试题:

阅读下面的代码片段,根据函数类型进行分类(函数声明、函数表达式和箭头函数)。

// 1
numbers.sort(function sortAsc(a, b) {
    
    
  return a– b;
});
// 2
numbers.sort((a, b) => b– a);
// 3
function outer() {
    
    
  function inner() {
    
    }
  return inner;
}
// 4
(function() {
    
    })();
// 5
(function() {
    
    }());
// 6
(() => "Yoshi")();

答案写在评论中

猜你喜欢

转载自blog.csdn.net/ThisEqualThis/article/details/128836136
今日推荐