函数表达式和函数声明有什么区别?

2017-11-07  本文已影响0人  备用的昵称

大家好,我是IT修真院成都分院第8期的学员,一枚正直纯洁善良的WEB前端程序员。今天给大家分享一下js中函数表达式和函数声明的区别。


一、什么是FUNCTION EXPRESSION(函数表达式)?

Function Expression 将函数定义为表达式语句(通常是变量赋值)的一部分。通过 Function Expression 定义的函数可以是命名的,也可以是匿名的。Function Expression 不能以“function”开头。

EZ:使用function关键字声明一个函数,但未给函数命名,最后将匿名函数赋予一个变量,叫函数表达式

// 函数声明

function funDeclaration(type){

return type==="Declaration";

}

// 函数表达式

var funExpression = function(type){

return type==="Expression";

}

二、两者具体有哪些区别呢?

(一)函数声明中函数名是必须的;函数表达式中则是可选的

//函数声明

function sum(a, b) {

return a + b;

}

alert(sum(1, 2));

//函数表达式

var s = function sum(a, b) {

return a + b;

}

alert(s(1, 2));

var s = function(a, b) {

return a + b;

}

alert(s(1, 2));

//以上两种都可以

(二)、用函数声明定义的函数,函数可以在函数声明之前调用,而用函数表达式定义的函数只能在声明之后调用。

//函数声明

alert(sum(1, 2));//3

function sum(a, b) {

return a + b;

}

//函数表达式:发生错误

try {

alert(s(1, 2));

var s = function sum(a, b) {

return a + b;

}

}

catch (e) {

alert("wrong!");

}

上一篇下一篇

猜你喜欢

热点阅读