首页 > 代码库 > 函数声明和函数表达式的区别
函数声明和函数表达式的区别
函数声明:
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
}
在这种情况下,你的方法已经暴露出去了,这个方法在代码的任何一个上下文中都可以执行,相当于函数声明的方式!
函数声明和函数表达式的区别
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。