最近在看JAVASCRIPT语言精粹与编程实践这本书。
书中讲了语法作用域
自己做了一下测试,效果好像不对。
程序直接报错,func1 is not a function。
函数func2可以执行,因为对函数做了提升。
那么问题到底出在了哪里?各位大佬。
最近在看JAVASCRIPT语言精粹与编程实践这本书。
书中讲了语法作用域
自己做了一下测试,效果好像不对。
程序直接报错,func1 is not a function。
函数func2可以执行,因为对函数做了提升。
那么问题到底出在了哪里?各位大佬。
说简单简单,说复杂复杂的
你把func1的定义放在判断之后,示例中也是这样的,这里涉及到哪种类先执行的问题
if(true){
function func1(){
console.log(56)
}
}
func1()
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
这只是和写书的人的时间有关系,有些书会告诉你这个规则正在(已经)改变。这里所隐藏的是函数声明提升方式。
以下为ECMAScript标准,仅为了解释上诉错误,在任何情况下都不建议使用此标准。
http://kangax.github.io/nfe/#...