最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 21:02:27
文档

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

JavaScript中的变量声明早于赋值分析_javascript技巧:如下 代码如下:var a = 3; 实际有两个步骤: 1 初始化a为undefined 2 a赋值3 因此会出现一些匪夷所思的现象,即JS中变量可以先使用后声明。这在Java中是不允许的。 代码如下:System.out.println(a); int a = 1; 编译通不过。但
推荐度:
导读JavaScript中的变量声明早于赋值分析_javascript技巧:如下 代码如下:var a = 3; 实际有两个步骤: 1 初始化a为undefined 2 a赋值3 因此会出现一些匪夷所思的现象,即JS中变量可以先使用后声明。这在Java中是不允许的。 代码如下:System.out.println(a); int a = 1; 编译通不过。但


如下
代码如下: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技巧

JavaScript中的变量声明早于赋值分析_javascript技巧:如下 代码如下:var a = 3; 实际有两个步骤: 1 初始化a为undefined 2 a赋值3 因此会出现一些匪夷所思的现象,即JS中变量可以先使用后声明。这在Java中是不允许的。 代码如下:System.out.println(a); int a = 1; 编译通不过。但
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top