“var”在javascript中做什么?为什么有时它是作业的一部分?

What does “var” do in JavaScript? Why is it sometimes part of an assignment?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Difference between using var and not using var in JavaScript

1
2
3
var foo = 1;

foo = 1;

上面两行的区别是什么?


基本上,var声明了一个变量,您也可以同时为它赋值。

如果没有var,它将赋值给变量。赋值将要么分配给一个现有变量,要么创建一个该名称的全局变量,然后再分配给它。

在函数之外,这意味着如果变量不存在,就没有实际的差异(在主体中)。在这种情况下,它们都会创建全局变量foo

在一个函数中,有一个巨大的区别。第一个函数创建一个局部变量,不管它是否存在于其他地方。

第二个变量将创建一个全局变量(如果不存在),或者只更改值(如果存在)。

为了尽可能保持代码的模块化,您应该始终使用var,除非您特别希望更改现有的全局变量。这意味着用var声明函数之外的所有全局,用var声明所有局部变量。


foo = 1将把foo放在定义foo的最后一个作用域或全局作用域中。var foo = 1将把变量放在当前范围内(即当前函数)。


在第一种情况下,foo将在定义它的相同范围内可用,即它将是局部变量。在第二种情况下,foo是一个全局变量,位于全局范围内。