这里有新鲜出炉的 Javascript 教程,程序狗速度看过来!
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
如下
JavaScript 中的变量声明早于赋值分析,需要的朋友可以参考下
- var a = 3;
实际有两个步骤: 1 初始化 a 为 undefined 2 a 赋值 3 因此会出现一些 "匪夷所思" 的现象,即 JS 中变量可以先使用后声明。这在 Java 中是不允许的。
- System.out.println(a);
- int a = 1;
编译通不过。但 JS 可以,如下
- alert(a);
- var a;
虽然是 undefined,但不会报错。说明 a 的确声明了,且为 undefined。 如果只是 "alert(a)",没有 "var a" 的话 JS 引擎会报错的。
- alert(a);
FF 中如下
虽然可以先使用再声明,但这样会造成赋值的效果丢失。如下
- alert(a);
- var a = 1;
这次输出的仍然是 undefined 而非 1。 又如,
- alert('a' in window); // true
- var a;
虽然代码形式上写在 alert 后,引擎仍然先自动处理 var 的声明。最后输出的是 true。 明白了这些就不难理解下面的代码运行结果了
- if (!("a" in window)) {
- var a = 1;
- }
- alert(a);
来源: http://www.phperz.com/article/17/0407/282113.html