这就是JavaScript的特色 :)JavaScript没有块级作用域.
函数中声明的所有变量,无论是在哪里声明,在整个函数中它们都是有定义的.将所有的变量声明集中起来放置在
函数的开头是个好的编程习惯.From: JavaScript: The Definitive Guide
函数中声明的所有变量,无论是在哪里声明,在整个函数中它们都是有定义的.将所有的变量声明集中起来放置在
函数的开头是个好的编程习惯.From: JavaScript: The Definitive Guide
定义在函数里的变量是局部的,函数外面是全局.但对此,js解析引擎有一些自己的理解方式.在执行函数时,若js引擎发现里面有未定义的变量被使用,它会把该变量认为是全局变量.注意,只要没有var定义,使用到的变量js就认为是全局变量.于是在A()之后,当前页面已经多了个全局变量text_a.
所以之后运行的B()就里就可以使用了.这种隐性定义全局变量的方式显然不是一个好的编程习惯,但可以简化js引擎分析.所以建议函数里使用的变量一律用var 加以定义
如下把A()改下
function A()
{
var text_a="i do my best to do the things i want to do!" alert( "function A"+text_a)
}现在text_a就是能够理解的局部变量了
B()已经找不到它了