在javascript中,为什么我们使用var声明变量?

在javascript中,为什么我们使用var声明变量?,javascript,Javascript,我已经使用javascript和jQuery一个月了。但是我仍然不明白使用var变量和不声明var之间有什么区别 var data = 10; data = 10; 以上两种说法的区别是什么?为什么?请向我详细解释。声明一个没有var关键字的变量将使其成为全局变量,这意味着它将可用于声明的模块中的所有函数和对象。 不用说,这会造成很多麻烦,应该避免 使用var关键字声明变量会将变量的范围限制在其声明的范围内。如果不使用var关键字声明变量,则该变量将变为全局变量,这意味着该变量将可用于其声明的

我已经使用javascript和jQuery一个月了。但是我仍然不明白使用
var
变量和不声明
var
之间有什么区别

var data = 10;
data = 10;

以上两种说法的区别是什么?为什么?请向我详细解释。

声明一个没有
var
关键字的变量将使其成为全局变量,这意味着它将可用于声明的模块中的所有函数和对象。 不用说,这会造成很多麻烦,应该避免


使用
var
关键字声明变量会将变量的范围限制在其声明的范围内。

如果不使用
var
关键字声明变量,则该变量将变为全局变量,这意味着该变量将可用于其声明的模块中的所有函数和对象。 不用说,这会造成很多麻烦,应该避免


使用
var
关键字声明变量会将变量的范围限制在声明变量的范围内。

我们使用它是因为它是一种提高可读性的语言结构,它源于“较旧”的动态类型语言(如初学者所有符号指令代码,也称为basic)

从语法角度来看,var与基本的“dim”语句类似


使用它被认为是一种良好的做法,因为如果在某个范围内省略它,它将传播到全局范围(尽管在全局范围内使用它绝对没有效果)。

我们使用它是因为它是一种用于提高可读性的语言构造,它源于“较旧的”动态类型语言(如初学者所有符号指令代码,又名basic。)

从语法角度来看,var与基本的“dim”语句类似


使用它被认为是一种良好的做法,因为如果在一个范围内省略它,它将传播到全局范围(尽管在全局范围内使用它绝对没有效果)。

区别在于使用“var”关键字可以在当前范围内声明变量。在顶级范围(窗口)当然,你不会注意到有多大的不同。我认为一个例子更清楚地说明了这一点:

// declares "data" on window scope
var data = 10;

function foo() {
  // overwrites the "global" data to 20.
  data = 20;

  // declares a scoped variable "scopedData" inside of this function and sets it to 25
  var scopedData = 25;

  alert(data);
  alert(scopedData);
}
// scoped data is undefined here because it was scoped to the function.
alert(scopedData);
还要注意的是,所有“var”声明在其作用域内都必须是唯一的,并且执行被上移到作用域的开头。
有关更多信息,请参阅本文:

不同之处在于,使用“var”关键字可以在当前范围内声明变量。当然,在顶级范围(窗口)上,您不会注意到太多差异。我认为一个示例可以更清楚地说明这一点:

// declares "data" on window scope
var data = 10;

function foo() {
  // overwrites the "global" data to 20.
  data = 20;

  // declares a scoped variable "scopedData" inside of this function and sets it to 25
  var scopedData = 25;

  alert(data);
  alert(scopedData);
}
// scoped data is undefined here because it was scoped to the function.
alert(scopedData);
还要注意的是,所有“var”声明在其作用域内都必须是唯一的,并且执行被上移到作用域的开头。
有关更多信息,请参阅本文:

首先声明一个变量并赋值。其次,您只需将新值赋给已存在的变量,该变量保存第二行data=10中的数据;您只需重新分配数据变量以保存值10。您是否尝试用谷歌搜索此变量?@higunjan此链接可能有助于解决此类问题:首先声明一个变量并赋值。第二步,您只需将新值赋给第二行data=10中保存数据的现有变量;您只需重新分配数据变量以保存值10。您是否尝试用谷歌搜索此值?@higunjan此链接可能有助于解决此类问题:声明一个不带var keywor的变量d将使其成为全局变量。真的吗?声明一个没有var关键字的变量将使其成为全局变量。真的吗?