【问题标题】:What is scope default of a variable defined by JavaScript var? [duplicate]JavaScript var定义的变量的范围默认值是什么? [复制]
【发布时间】:2020-06-21 22:18:57
【问题描述】:

javascript中默认变量的作用域是什么?我很困惑,我想知道 Alcanse 有哪些默认变量 我认为是 var 还是不是?

例如:

x = 15 // ??
let y = 22 // let
var j = 33 // var

变量?让?

【问题讨论】:

  • 如果没有相应的变量声明,它将被声明为全局对象的属性。在浏览器中是window
  • 什么是“默认变量”?如果您的意思是未声明的变量,则范围是全局的,但仅在执行分配给它的表达式时才存在。在严格模式下,这是一个语法错误。
  • @David — 它始终位于全局对象上(其中 window 是具有 window 的环境中全局对象的别名/同义词)。什么是“当前作用域对象”?
  • @RobG:已更新,谢谢。不知道这个术语实际上是从哪里来的,我可能把它和别的东西混在一起了。

标签: javascript scope default var let


【解决方案1】:

基于this source

不带 var 关键字声明的变量的作用域变成全局变量,无论它在哪里声明。可以从网页中的任何位置访问全局变量。访问范围了解更多信息。

【讨论】:

  • OP 是关于未声明的变量,例如通过赋值创建的变量。链接的文章使用了不正确的术语,以至于误导:“没有 var [或 let 或 const] 关键字声明的变量成为全局变量,无论它在哪里声明”。关键是它们根本没有被声明,它们是通过赋值创建的,并且除了在创建后是全局的之外还有其他重要的特性。
猜你喜欢
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 2011-04-21
  • 2013-12-28
相关资源
最近更新 更多