在js中变量的有效范围问题

JavaScript中变量的作用

文中有不对的地方请大家谅解和提出,谢谢!

1.在方法中定义一个变量的时候不用var的情况

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta charset="GB2312"/>
<title>在方法中定义一个变量的时候不用var的情况</title>


<script type="text/javascript">

function f1(){
x=100;
alert('方法内X:'+x);
}
alert('方法外X--:'+x); //这行代码是错的,因为f1方法调用在它后面,就相当与没有定义x,直接使用
//********************************************************************************************************************//
f1(); //在这行代码之前(不包括方法内)使用变量x都是错误的。*号以上除了f1方法中,其他地方使用x都是错误的
//********************************************************************************************************************//
alert('方法外X:'+x); //这行代码正确打印出100

</script>
</head>


<body>
</body>

</html>

为了阅读起来比较舒服,下面我只留js代码

2.在js的重复定义一个变量的时候,会自动忽略第二次定义,但是不忽略赋值

<script type="text/javascript">
var n=10;
alert(n);//正确打印10
var n=1234;
alert(n);//正确打印1234
</script>

3.方法内部变量,外部将无法访问。

<script type="text/javascript">
function f1(){
var n=10;
n++;
alert(n);//
正确打印出11
}
f1();
//调用f1();函数

alert(n);
//
这句话是错误的,以前浏览器还会提示报错,由于版本升级等等原因,现在的浏览器都不报错了,只是什么都不显示,要想查看:工具-->开发人员工具,进行调试查看错误。//这句话错误的原因是,js中定义:方法内定义的变量,方法外无法访问。而这行代码访问了f1函数中的变量n。

</script>

4.js中没有块级定义域(if、for、while等)

<script type="text/javascript">

function f1(){
var x=10;
if(x>5){
var n=10
n++;
alert(n); //正确打印出来11,
}
n++;
alert(n);
//正确打印出12,只要是学了C、C#、java等,都觉得在这里调用if语句里面的变量n会报错,实际上在js中这是正确的。
//因为js语法规定:js中没有块级定义域(if、for、while等),所以在方法内部定义的变量,在方法'任何地方'(定义变量下面的代码都能正常访问)都有效。
//for循环while等语句都是一个道理。


}
f1(); //调用f1();函数

</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值