【发布时间】:2018-03-18 13:24:24
【问题描述】:
所以在解释性语言中,比如 javascript,我们有:
var x = doThis(); // function call, assign statement
console.log(x); // print statement
function doThis(){ //function declaration
return "Hello World"; //return statement
}
我的问题是:
何时(运行时)实际执行打印语句?在解析函数声明之前还是之后?如果它之前执行过,如何,因为没有编译器,代码会立即执行。
P.S 我读过一些关于函数提升的东西,但还是不明白。
【问题讨论】:
-
提升意味着在第一次解析运行时将声明的变量和函数放在内存中,然后执行代码。因此,该功能有效地“提升到顶部”并且在代码执行时可用。 jsfiddle.net/bsp38yc9
-
另见与IIF's的区别。
-
“提升到示波器顶部”。另见variable shadowing。
标签: javascript function declaration