能说明你的JS技术很烂的五个原因(1)(3)
3. 你没有理解JavaScript的变量范围。
你是个天才的程序员,你吃的是C++、拉的是List。你知道什么是变量范围,你对你的变量有完全的控制,你就像太上皇似的的注视着它们。然而,JavaScript却在你的咖啡里拉了一泡屎,并且大笑不止。
- var herp=”one”;
- {
- var herp=”two”;
- }
- alert(herp);
在这种情况下你得到的herp不是“one”,而是“two”。JavaScript的变量有效范围并不是跟其它语言一样依赖于代码块。JavaSript的变量范围是以函数为基础的。每个函数都有它自己的变量范围,Javascript这一点上表现的很酷,根本不理睬这毫无意义的花括弧包起来的范围。事实上,JavaScript是如此的酷,以至于你甚至可以将变量范围像命名空间或变量那样进行传递。






