♫【函数】函数声明 / 函数表达式

函数声明 VS 函数表达式

Javascript中的函数声明和函数表达式

命名函数表达式探秘

console.log(foo) // function foo() {} 函数声明提升
console.log(bar) // undefined 变量声明提升 赋值不会提升
try {
    console.log(bar_fn)
} catch(err) {
    console.log('Uncaught ReferenceError: bar_fn is not defined')
}
// 函数声明
function foo() {}
// 函数表达式
var bar = function bar_fn() {}
console.log(foo) // function foo() {}
console.log(bar) // function bar_fn() {} 
try {
    console.log(bar_fn)
} catch(err) {
    console.log('Uncaught ReferenceError: bar_fn is not defined')
}
// JavaScript不允许在函数声明的后面直接使用小括号,而函数表达式则没有这个限制
// ~ ! + - 可以让词法解析器把后面看成是函数表达式
// bootstrap就这么干啊 干
+function() {
    console.log('hello world')
}()
原文地址:https://www.cnblogs.com/jzm17173/p/3612964.html