2015-03-02 98 views
0

我一直在使用javascript & jQuery一个月。但我仍然没有得到使用var变量和没有声明var之间的区别。在javascript中为什么我们使用var来声明变量?

var data = 10; 
data = 10; 

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

+1

首先声明一个变量并分配值。在第二行中,您只需将新值赋给已存在的变量,该变量在第二行data = 10中保存数据 – virendrao 2015-03-02 09:35:07

+0

;你只是重新分配数据变量来保存价值10 .. – Lucky 2015-03-02 09:36:39

+0

你试过谷歌这个? [使用问题的标题可返回相当多的相关结果。](https://www.google.com/search?q=In+javascript+why+we+use+var+for+declaring+variable%3F&ie = utf-8&oe = utf-8&gws_rd = cr&ei = Zi_0VMX_Dcr3UInSgugO) – 2015-03-02 09:37:33

回答

2

声明的变量,而不var关键字将使全球性的,这意味着它将适用于所有模块中已声明的功能和对象。不用说,这会造成很多麻烦,应该避免。

声明与var关键字变量将限制变量它在声明范围内的范围。

+0

声明一个不带var关键字的变量会使其成为全球。真? – dsharew 2015-03-02 09:39:42

0

我们使用它,因为它是一个语言结构,以提高可读性,从“旧的”动态类型的茎语言(如初学者的所有符号指令代码,又名碱性。)

变种类似,从语法角度看基本的“暗淡”的语句。

它被认为是使用它由于事实,如果它是一个范围内省略它会传播到全球范围内最好的做法(虽然有,如果在全球范围内使用绝对没有任何影响。)

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); 

另外请注意,所有的“变种”的声明必须包含在其范围内,并且执行向上移动将开始的范围是独一无二的。 请参见本文的详细信息:http://www.adequatelygood.com/JavaScript-Scoping-and-Hoisting.html

相关问题