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

时间:2015-03-02 09:33:31

标签: javascript

我一直在使用javascript& jQuery一个月。但我仍然没有得到使用var变量和不声明var之间的区别。

var data = 10;
data = 10;

上述两个陈述有什么区别?为什么?请详细向我解释。

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:2)

区别在于" 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"声明需要在其作用域内是唯一的,并且执行被移动到作用域的开头。 有关详细信息,请参阅此文章:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html

答案 2 :(得分:0)

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

var从语法角度来看类似于基本的'dim'语句。

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