JavaScript变量作用域

本文详细阐述了JavaScript中变量作用域的基本概念,包括局部变量与全局变量的区别、变量声明及初始化的过程,以及如何正确地使用var关键字声明变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要弄清楚JavaScript的变量作用域,有以下几点是需要我们理解与记住的: 

1,一个局部变量的名称可以与某个全局变量的名称相同,但这是两个完全不同的变量。因此,更改一个变量值不会影响另一个变量的值。在声明局部变量的函数内,只有该局部变量有意义。

2,当 JavaScript 运行函数时,首先查找所有的变量声明,并以未定义的初始值undefined创建变量。如果变量被声明时有值,那么该变量仍以未定义的值undefined初始化,并且只有在运行了声明时才被声明值取代(假如变量被声明),记住JavaScript是顺序执行语句的。

3,变量在脚本中的第一次出现是在声明中。变量在第一次用到时就设置于内存中,方便于后来在脚本中引用。使用变量之前先进行声明。可以使用 var 关键字来进行变量声明。如果在 var 语句中没有初始化变量,变量自动取 JavaScript 值 undefined。尽管并不安全,但声明语句中忽略 var 关键字是合法的 JavaScript 语句。这时,JavaScript 解释器给予变量全局范围的可见度,即为全局变量。

 

for example:

 

<script language="JavaScript">

window.onload=function(){

       strYYYY = document.form1.YYYY.outerHTML;       -------------声明语句未使用var关键字,则为全局变量。

       var str = strYYYY.substring(0,strYYYY.length-9);

       ......

       strDD = document.form1.DD.outerHTML;            -------------声明语句未使用var关键字,则为全局变量。

       var n = MonHead[new Date().getMonth()];
       if(new Date().getMonth()==1 && isPinYear(y))
       {
              n++;
       }
       writeDay(n);

}

function writeDay(n)
{
      alert(strDD);         ---------------------输出<select name="DD"><option value="">选择日</option></select>

      alert(str);             ---------------------输出undefined

      str = strDD.substring(0,strDD.length-9);
      for(var i=1;i<(n+1);i++)
     {
            str += "<option value='"+i+"'>"+i+"</option>";
     }
     document.form1.DD.outerHTML = str + "</select>";
}

</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值