We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
请写出一下代码运行结果
console.log(a); var a = 1; console.log(a); function a() {} console.log(a);
The text was updated successfully, but these errors were encountered:
在JavaScript中,变量和函数声明会在代码执行之前被提升到其所在作用域的顶部。但是,这种提升只涉及到声明部分,而不包括赋值。
让我们针对你的例子重新解释:
console.log(a); // 输出:function a() {} var a = 1; console.log(a); // 输出:1 function a() {} console.log(a); // 输出:1
变量和函数声明提升:
a
代码执行:
第一个 console.log(a); 遇到的是函数声明,因为在提升阶段,函数声明覆盖了变量声明。所以输出 function a() {}。
console.log(a);
function a() {}
var a = 1; 这一行的赋值部分不会影响提升阶段的输出。在提升阶段,a 被视为函数。
var a = 1;
第二个 console.log(a); 输出的是变量 a 的值,因为在这一行之前,变量 a 已经被重新赋值为 1。所以输出 1。
1
第三个 console.log(a); 输出的仍然是变量 a 的值,即 1。
总体来说,提升阶段会将声明提升到作用域的顶部,函数声明会覆盖变量声明,但赋值部分不会在提升阶段执行。
Sorry, something went wrong.
No branches or pull requests
请写出一下代码运行结果
The text was updated successfully, but these errors were encountered: