JavaScript变量及其作用域

JavaScript变量

变量以字母、$或者_符号开头,且区分大小写(JavaScript语言本身就是大小写敏感的),函数外部声明的是全局变量,函数内部使用var声明的变量为局部变量,函数内部不使用var声明的变量也为全局变量

var x ;  //声明变量(未赋值时值为undefined, type of x的值也为undefined)

var y = "hello"; //声明并赋值

z = 10;   //不带var声明的变量为全局变量

重新声明 JavaScript 变量,该变量的值不会丢失:

var a = "hello";

var a;

以上两条语句执行后,变量a的值依然是 "hello"

JavaScript变量作用域

具体说明:

1.JavaScript没有块级作用域

<script type="text/javascript" language="javascript">
var x = 1;

for(int x=0; x < 2; x++)

{

      alert( x ); //弹出0,1

}

alert(x); //弹出1
</script>

2.函数体内部,局部变量的优先级比同名的全局变量高

3.未使用var关键字定义的变量都是全局变量

4.函数中声明的变量在整个函数中都有定义

下面的代码比较有意思,说明了这个问题:

<script type="text/javascript" language="javascript">
var x = 1;
function test(){
alert( x ); //弹出 'undefined',而不是1
var x = 'hello';
alert( x ); //弹出 'hello'
}
test()
</script>

此处由于test函数内定义的局部变量x(与全局变量同名),而函数内声明的局部变量在整个函数体中都有意义,故在此函数中所有的x都是指局部变量x(全局变量x在函数体内已被隐藏了),又由于第一次调用alert(x)的时候,x尚未被赋值,故其值为undefined,赋值之后就有具体的值了

5.全局变量都是window对象的属性

<script type="text/javascript" language="javascript">
var x = 123 ;
alert( window.x );//弹出123
alert(x);
</script>

或者

<script type="text/javascript" language="javascript">
window.x = 123;
alert( window.x );
alert(x)
</script>

重点注意:JavaScript没有块级作用域;未使用var关键字定义的变量都是全局变量


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值