Javascript变量

1. 变量声明部分

If you attempt toread the value of an undeclared variable, JavaScript will generate an error. Ifyou assign a value to a variable that you have not declared with var,JavaScript will implicitly declare that variable for you. Note, however, thatimplicitly declared variables are always created as global variables, even ifthey are used within the body of a function. To prevent the creation of aglobal variable (or the use of an existing global variable) when you meant tocreate a local variable for use within a single function, you must always usethe var statement within function bodies. It's best to use var for allvariables, whether global or local. (The distinction between local and globalvariables is explored in more detail in the next section.)

如果变量没有先被var声明,而直接赋值,会自动产生声明一个全局变量,

但是如果没有声明,而直接读取的话会抛出一个错误。


2. 变量作用域

Within the body of afunction, a local variable takes precedence over a global variable with thesame name

在函数内部,局部变量优先级高于全局变量。


3. 小心全局变量和局部变量重名

All variablesdeclared in a function, no matter where they are declared, are defined throughout the function

var scope ="global";

function f(  ) {

    alert(scope);         // Displays "undefined", not"global"

    var scope = "local";  // Variable initialized here, but definedeverywhere

    alert(scope);         // Displays "local"

}

f(  );

var scope ="global";

function f(  ) {

    alert(scope);         // Displays  "global"

}

f(  );

 

You might think that the first call to alert( ) would display "global", since the varstatement declaring the local variable has not yet been executed. Because ofthe scope rules, however, this is not what happens. The local variable isdefined throughout the body of the function, which means the global variable bythe same name is hidden throughout the function. Although the local variable isdefined throughout, it is not actually initialized until the var statement isexecuted. Thus, the function f in the previous example is equivalent to thefollowing:

 

function f(  ) {

    var scope;        // Local variable is declared at thestart of the function

    alert(scope);     // It exists here, but still has"undefined" value

    scope = "local";  // Now we initialize it and give it a value

    alert(scope);     // And here it has a value

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值