我是靠谱客的博主 安静白羊,最近开发中收集的这篇文章主要介绍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);

最后

以上就是安静白羊为你收集整理的JavaScript中的变量声明早于赋值分析的全部内容,希望文章能够帮你解决JavaScript中的变量声明早于赋值分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(97)

评论列表共有 0 条评论

立即
投稿
返回
顶部