作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 00:32:34 阅读 我要评论

如下 复制代码 代码如下: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);

  推荐阅读

  js编码之encodeURIComponent使用介绍(asp,php)

因为要新作系统,因此对于JS脚本又重新研究了一下。在对新的URL编码的时候发现,网页编码的格式对于JS的影响很大,在这里书写一点。 {var B=siteUrl+this.actionUrl+(this.type==="all"?"":this.type)+"&SearchWor>>>详细阅读


本文标题:JavaScript中的变量声明早于赋值分析

地址:http://www.17bianji.com/kaifa2/JS/23589.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)