gpt4 book ai didi

javascript - 如何在 JavaScript 中执行具有 If/else 条件的变量合并?

转载 作者:行者123 更新时间:2023-11-28 14:54:20 25 4
gpt4 key购买 nike

我正在尝试合并我的 javascript 文件中的所有变量声明。即E

var a = 5,
b = 10;
if (true) {
var c =15; // * Line in question
}

我是否需要使用 var 初始化 c 以避免它成为全局变量?还有其他方法可以将其作为变量合并的一部分吗?换句话说,是否有一种方法可以仅使用一个 var 关键字(中间有 If/else 条件)来继续声明变量?

比如,

变量a, 乙;如果属实) C;//不希望将其作为全局变量

谢谢

最佳答案

代码

var a = 5,
b = 10;
if (true) {
var c = 15;
}

就 JavaScript 引擎而言与以下代码相同:

var a, b, c;
a = 5,
b = 10;
if (true) {
c = 15;
}

var 被“提升”到它出现的函数的顶部。

如果您想合并 var,您可以执行我在上面第二个 block 中所示的操作。

Do I need to initialize c using var to avoid it becoming global variable?

您需要声明它(var c)。您不必初始化它(= 15 部分是初始化,当与 var 一起使用时,这实际上是一个赋值,因为 var 发生较早且单独)。

<小时/>

旁注:JavaScript 现在有 let 关键字(从 ES2015 又名“ES6”开始),它具有 block 作用域。因此,如果除了 if block 内部之外从未使用过 c,您可以这样做:

let a = 5,
b = 10;
if (true) {
let c = 15; // * Line in question
}

...它将 c 很好地限制为仅使用它的代码。

<小时/>

附注 #2:如果您的函数保持较小的规模,则没有太多理由将您的 var 组合在函数的顶部。这是众多风格论据之一,认为保持函数较小就会消失。 :-)

关于javascript - 如何在 JavaScript 中执行具有 If/else 条件的变量合并?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501140/

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