问题标签 [variable-declaration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
398 浏览

c# - Lambda 闭包或类级别变量?

只是关于最佳实践是什么的一般问题:

请注意,我x在我的 lambda 事件处理程序中使用该变量。

或者:

这里,x是类的私有成员,因此我可以在我的事件处理程序中访问它。

现在假设我不需要x代码中的其他任何地方(无论出于何种原因),哪种方法更好?

0 投票
15 回答
635349 浏览

python - 是否可以只声明一个变量而不在 Python 中分配任何值?

是否可以像这样在 Python 中声明一个变量?:

使其初始化为无?似乎 Python 允许这样做,但是一旦您访问它,它就会崩溃。这可能吗?如果不是,为什么?

编辑:我想在这样的情况下这样做:

复制

有关的

0 投票
13 回答
393639 浏览

c - 指向数组/指针数组的C指针消歧

以下声明之间有什么区别:

理解更复杂的声明的一般规则是什么?

0 投票
13 回答
3281 浏览

c++ - 有没有办法在 for 循环初始化程序中定义两种不同类型的变量?

您可以在 for 循环中定义 2 个相同类型的变量:

但是定义不同类型的变量是违法的:

有没有办法做到这一点?(我不需要i在循环内使用,只需j。)

如果你有完全破解和模糊的解决方案,这对我来说没关系。

在这个人为的例子中,我知道你可以只使用double这两个变量。我正在寻找一个普遍的答案。

请不要建议将任何变量移到 for body 之外,这对我来说可能不可用,因为一个迭代器必须在循环之后消失,而 for 语句将包含在我的foreach宏中:

它可以这样使用:

但我需要这样使用的东西:

请不要引入任何运行时开销(但编译可能会很慢)。

0 投票
13 回答
53716 浏览

c++ - 在循环中声明变量是否有任何开销?(C++)

我只是想知道如果您执行以下操作是否会降低速度或效率:

宣布int var一百次。在我看来会有,但我不确定。这样做会更实用/更快吗:

还是它们在速度和效率方面是相同的?

0 投票
12 回答
776314 浏览

javascript - 如何取消设置 JavaScript 变量?

我在 JavaScript 中有一个全局变量(实际上是一个window属性,但我认为这并不重要),它已经由以前的脚本填充,但我不希望稍后运行另一个脚本来查看它的值或者它是甚至定义。

我已经提出some_var = undefined并且它可以用于测试目的,typeof some_var == "undefined"但我真的认为这不是正确的方法。

你怎么看?

0 投票
3 回答
147 浏览

javascript - 这里的变量声明有什么区别?

我正在维护一个项目并阅读代码:
我看到了两种变量声明方法。有人可以解释第一行和第二行之间的区别是什么意思吗?

对我来说,我在 javascript 中读到,var关键字是可选的。在第一行中,他们声明了两个新变量并对其进行了初始化。在第二行中,他们声明了两个新变量,但没有初始化它们。我应该从中得到更多吗?

0 投票
3 回答
266 浏览

c# - 只读变量声明的顺序是否保证设置值的顺序?

假设我要为文件路径设置一些只读变量,我能否保证根据声明顺序分配值的顺序?

例如

这是一种安全的方法,还是basepath可能仍然是当时字符串的默认值subpath1subpath2引用该字符串?

我意识到我可以通过在构造函数中分配值而不是在声明时来保证顺序。但是,如果我需要在静态类中声明变量(例如控制台应用程序的 Program.cs,它有一个静态 void Main() 过程而不是构造函数),我相信这种方法是不可能的。

更新:

我已经添加了 static 关键字(因为这是我正在使用的以及它编译的原因)以及 Path.Combine 的建议。

0 投票
4 回答
639 浏览

vb.net - VB.Net 变量声明

我注意到这两个编译都没有任何编译器警告或错误,即使Option Strict同时Option Explicit打开:

我的问题是,使用第一种方式(见变量 x)还是第二种方式(见变量 y)更合适?我的猜测是 VB 不需要该As子句,因为变量正在就地初始化,因此编译器可以推断类型。

我倾向于喜欢第一种方式,因为它只是“感觉”正确并且与其他语言更一致,例如C#,只是想知道是否有充分的理由让一种方式优于另一种方式。我想这真的是个人选择。

0 投票
7 回答
1379 浏览

c - 开源项目中的C99混合声明和代码?

为什么在Linux 内核GNOME等开源 C 项目中仍然没有使用C99 混合声明和代码

我真的很喜欢混合声明和代码,因为它使代码更具可读性,并通过将变量的范围限制在尽可能窄的范围内来防止难以看到的错误。这是 Google为 C++推荐的。

例如,Linux至少需要GCC 3.2,而 GCC 3.1支持C99 混合声明和代码