我可以在哪里用JavaScript声明变量

我可以在哪里用JavaScript声明变量,javascript,Javascript,我是JS的新手。我有以下问题- 我只能在全局范围内声明变量,或者只能在JS中的函数/方法内声明变量,而不能在其他类型的非函数/方法的对象中声明变量,这样说对吗 我知道属性可以在Javascript的任何对象中定义,但变量不能到处声明 编辑:我可能没有合适的术语来解释,但用最简单的话来说,我需要一个列表,列出我可以写var x=。。在JS代码中。请注意,我不是在寻找变量的范围。 您可以在中间的程序的任何地方想要变量,或者在函数中需要一个函数时,也可以在这里执行< < /p> 变量,可以在顶层声明,

我是JS的新手。我有以下问题-

我只能在全局范围内声明变量,或者只能在JS中的函数/方法内声明变量,而不能在其他类型的非函数/方法的对象中声明变量,这样说对吗

我知道属性可以在Javascript的任何对象中定义,但变量不能到处声明


编辑:我可能没有合适的术语来解释,但用最简单的话来说,我需要一个列表,列出我可以写var x=。。在JS代码中。请注意,我不是在寻找变量的范围。

您可以在中间的程序的任何地方想要变量,或者在函数中需要一个函数时,也可以在这里执行< < /p> 变量,可以在顶层声明,函数参数列表和函数体中的语句。< /P> 对象和数组文字可以包含嵌套函数,您也可以在这些函数中声明变量。但是不能直接在对象/数组文本中声明变量;e、 g.你不能写:

const foo_array = [
    let a = 1,
    let b = 2
];


使用var的变量具有函数作用域。使用const或let的变量具有块作用域。建议使用完成任务所需的最具体的作用域,以避免名称冲突和全局重写的可能性。是的,根据定义,JS变量是函数作用域。也就是说,它们在定义它们的功能范围内。随着ES2015中let和const关键字的引入,变量的作用域可能在特定的块内,但该块仍将在函数或全局作用域内。@mhodges,所以我的观察是对的?@Quentin仍然在全局作用域内定义变量。除非OP只是问变量声明是在哪里做出的?@SunnyPatel我认为问题更多的是关于语法而不是范围。你能举个例子说明如何在类定义的语句中这样做吗?那是错误的,在类定义中看起来像变量赋值的语句实际上是类原型中的一个属性,不是一个真正的变量。我已经删除了它。我想我们需要使用declare而不是define关键字。这就是评论中的全部小题大做@打破本杰明,我改为声明,尽管我认为对于这个问题来说,区别并不是很重要。定义只是带有初始化的声明。