声明式与赋值式的区别
- 写法不同
- 调用上略有不同
声明式定义的函数, 可以在 函数定义前 去调用 (先不考虑原理)
赋值式定义函数, 不能再函数定义前 去调用
赋值式定义函数不能再函数定义前调用的原因
赋值式定义, 其实就是声明一个变量, 然后给他赋值为一个函数
再 JS 中, 如果再定义变量之前 使用变量的话, 那么变量的值为 undefined (变量提升 面试可能会问)
函数的执行结果, 一般默认都是 undefined, 除非手动更改 1.1 声明式定义函数
fn1()
console.log('我是fn1函数定义前的 输出~~~~~~~')
function fn1() {
console.log('我是 fn1 函数')
}
fn1()
fn1()
1.2 赋值式定义函数
fn2()
console.log(fn2) // undefined
var fn2 = function () {
console.log('我是 fn2 函数')
}
fn2()
console.log(fn2) // 打印了 fn2 这个变量内部存储的值
console.log(fn2()) // 打印了 fn2 这个函数的执行结果, 一般默认是 undefined,