茂爷的博客
:: 向左走向右走::

在相遇的城市迷失之前
寻找一张似曾相识的脸
握在手中的风筝
断了线
是因为我寂寞
你才出现
还是你的存在让我自怜
缘分走过我身边
变成答录机遥远的留言
甜蜜在梦幻的一瞬间
留下了真实的思念
一段情就能连接两个人的天
一条路就能让两个人霎那之间
命运都改变
只要愿意相信就能相见
一滴泪就能挡住两个人的天
模糊我的视线
呼唤着你名字
从起点回到原点
两条平行线总有交汇的一天
是命运在转变
你才出现
还是你的出现让我改变
一个巧合的意外
变成一场最执着的迷恋
甜蜜在梦幻的一瞬间
留下了真实的思念
  注意:在javascipt中变量没有块级作用域。
和c,c++以及java不同,javascript没有块级作用域。函数中声明的所有变量,不论是在哪里声明的,在整个函数中他们都是定义的。在下面函数中,变量,i,j,k的作用域相同,他们在整个函数都是定义的。如果这段代码使用c,c++或java编写,情况就不是这样的了。
这一规则(即函数中声明的所有变量在整个函数中都有定义)可以产生惊人的结果。
下面代码说明了这一点。
var scope ="global" ;
function f()
{
   alert(scope) ;           
//显示undefined,而不是“global”
   var scope ="local" ;     //这里是初始化,不过在整块函数中都是可见的。
   alert(scope)             //显示"local" 
}

f();
你可能认为对alert()的第一次调用会显示出“global”,因为声明局部变量的var 语句还没有执行。但是,由于这个作用域规则的限制,输出的并不是“gobal”。局部变量在整个函数体内都是有定义的, 这就意味着在整个函数体中都隐藏了同名的全局变量。虽然局部变量在整个个函数体中都是有定义的,但是在执行var语句之前,它是不会被初始化的。
同时这个例子也说明了为什么将所有的变量声明放在程序开头是个好的习惯
posted on 2007-06-04 16:35  茂爷的blog  阅读(332)  评论(2编辑  收藏  举报