源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

JavaScript中的变量声明早于赋值分析

  • 时间:2020-02-10 13:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:JavaScript中的变量声明早于赋值分析
如下
[u]复制代码[/u] 代码如下:
var a = 3;
实际有两个步骤: 1 初始化a为undefined 2 a赋值3 因此会出现一些“匪夷所思”的现象,即JS中变量可以先使用后声明。这在Java中是不允许的。
[u]复制代码[/u] 代码如下:
System.out.println(a); int a = 1;
编译通不过。但JS可以,如下
[u]复制代码[/u] 代码如下:
alert(a); var a;
虽然是undefined,但不会报错。说明a的确声明了,且为undefined。 如果只是“alert(a)”,没有“var a”的话JS引擎会报错的。
[u]复制代码[/u] 代码如下:
alert(a);
FF中如下 [img]http://pic002.cnblogs.com/images/2012/114013/2012022818245729.png[/img] 虽然可以先使用再声明,但这样会造成赋值的效果丢失。如下
[u]复制代码[/u] 代码如下:
alert(a); var a = 1;
这次输出的仍然是undefined而非1。 又如,
[u]复制代码[/u] 代码如下:
alert('a' in window); // true var a;
虽然代码形式上写在alert后,引擎仍然先自动处理var的声明。最后输出的是true。 明白了这些就不难理解下面的代码运行结果了
[u]复制代码[/u] 代码如下:
if (!("a" in window)) { var a = 1; } alert(a);
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部