MST

星途 面试题库

面试题:JavaScript 函数定义独特方式之中等题

请分别使用函数声明、函数表达式和箭头函数这三种方式定义一个函数,该函数接收两个数字参数并返回它们的和。并且说明函数声明和函数表达式在提升方面有什么不同。
35.4万 热度难度
编程语言JavaScript

知识考点

AI 面试

面试题答案

一键面试

函数声明

function add1(num1, num2) {
    return num1 + num2;
}

函数表达式

const add2 = function(num1, num2) {
    return num1 + num2;
};

箭头函数

const add3 = (num1, num2) => num1 + num2;

函数声明和函数表达式在提升方面的不同

  • 函数声明:函数声明存在提升现象,在代码执行之前,函数声明会被提升到作用域的顶部,因此可以在声明之前调用该函数。例如:
console.log(add1(1, 2)); 
function add1(num1, num2) {
    return num1 + num2;
}

上述代码能正常输出 3,因为函数声明 add1 被提升到了作用域顶部。

  • 函数表达式:函数表达式不会提升,必须在定义之后才能使用。例如:
console.log(add2(1, 2)); 
const add2 = function(num1, num2) {
    return num1 + num2;
};

上述代码会报错,因为在调用 add2 时,add2 还未被定义,函数表达式没有提升。