gpt4 book ai didi

javascript - JS引擎如何处理Condition block 中的变量声明?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:56:42 24 4
gpt4 key购买 nike

全部:

我有一个关于变量声明的问题,如果我在 if block 中声明一个变量,当 JS 引擎遇到该行时,引擎如何知道如何设置该变量?

我知道这是声明变量的糟糕方式,但只是好奇 JS 引擎如何使用它:

if( trueSituation ){
var a_variable = true;
}else {
var another_variable = false;
}

谢谢

最佳答案

Javascript 有一个术语叫做“变量提升”。当您的代码实际执行时,所有 var 都被拉到封闭函数的顶部:

function foo() {
var a_variable;
var another_variable;
if( trueSituation ) {
a_variable = true;
}else {
another_variable = false;
}
}

if/else之前,您可以将console.log(a_variable)作为特殊值undefined

作为旁注,ES6 包含一个名为 let 的结构,它允许更传统的 block 范围界定,但我相信它仍然会将变量提升到 block 的顶部。

关于javascript - JS引擎如何处理Condition block 中的变量声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com