码迷,mamicode.com
首页 > 其他好文 > 详细

函数声明和函数表达式的区别

时间:2016-09-27 11:42:18      阅读:96      评论:0      收藏:0      [点我收藏+]

标签:

函数声明:

function say(param){
console.log(‘hellow ‘+param)
}


函数表达式:

var say = function(param){
console.log(‘hellow ‘+param)
}

可以看到函数表达式多了一个赋值“=”,将这个指针保存在变量中,它们的运行效果是一样的。

 

 

注意点:(在js解析器的解析下它们的调用顺序是一不一样的)

例子:(函数声明:这种方式不管你是在代码最前端声明还是放在最后声明,它们在解析时都会被放在最前端;)

say(‘world‘);

function say(param){
console.log(‘hellow‘+param)
}

//hellow world

 

例子:(函数表达式:你必须按照调用顺序先写表达式再去调用)

say(‘world‘);

var say =function(param){
console.log(‘hellow ‘+param)
}

//Uncaught TypeError: say is not a function(…)

可以看到上面的不同结果,函数声明方式创建的函数在JS中就是一等公民。具有最有最优先权!

 

 

当然有例外情况:比如你应用了Common JS的模块规范;

var say =function(param){
console.log(‘hellow ‘+param)
}

module.exports = {
say: say
}

在这种情况下,你的方法已经暴露出去了,这个方法在代码的任何一个上下文中都可以执行,相当于函数声明的方式!

 

函数声明和函数表达式的区别

标签:

原文地址:http://www.cnblogs.com/xiaojingyuan/p/5912030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!