【发布时间】:2019-11-20 14:04:48
【问题描述】:
我想具体了解一下吊起时首先出现的功能。它们是否与开始时一样:
var z;
function b(){}
function a(){}
会变成
function b(){}
function a(){}
var z;
或者它还有其他作用吗?这对调用其他函数的函数有何影响?有没有
var z;
function b(){a();}
function a(){}
知道成为
function a(){}
function b(){a();}
var z;
还是我错过了什么?
【问题讨论】:
-
有什么不同吗?
-
您有什么具体问题吗?函数声明语句实际上并没有做任何事情;函数名绑定到词法范围内的函数。因此,解释的顺序是什么并不重要。
-
我更愿意确切地知道编译器是如何处理我的代码的,特别是如果函数顺序在我不希望它发生变化时可能会在以后引起问题。我喜欢编写尽可能接近运行的代码,使调试更容易
-
我没有任何具体问题,我只是想了解它在做什么
-
函数声明的顺序根本不重要。感谢提升本身,所有函数都将在任何代码能够调用它们之前被声明。因此,它不会改变您编写的代码的运行方式,因此不会在调试时对您有任何帮助。
标签: javascript hoisting