面试题答案
一键面试函数声明
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
还未被定义,函数表达式没有提升。