如何理解JavaScript权威指南第96页的“也就是说,可以在声明一个JavaScipt函数之前调用它”

前端之家收集整理的这篇文章主要介绍了如何理解JavaScript权威指南第96页的“也就是说,可以在声明一个JavaScipt函数之前调用它”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

Show you the code

foo()
var foo = function(){
    console.log("函数定义")
}
//Uncaught TypeError: foo is not a function
foo()
function foo(){
    console.log("函数声明")
}
//"函数声明"

解释一下报错的原因,拆解过程如下:

function(){
    console.log("函数定义")
}
var foo;
foo()
foo = function(){
    console.log("函数定义")
}

而正确调用的原因,拆解过程如下:

function foo(){
    console.log("函数声明")
}
foo()

根本原因是变量声明和函数声明都存在提升(hositing)的原因。

但是最好的命名函数方式是将二者结合:

const foo = function whyDeclarationAndExpressionIsGood(){
    console.log("函数声明和表达式结合")
}
foo()
原文链接:https://www.f2er.com/js/417909.html

猜你在找的JavaScript相关文章