JavaScript变量提升机制详解与实例分析.pdfVIP

  • 0
  • 0
  • 约1.59千字
  • 约 2页
  • 2026-02-02 发布于北京
  • 举报

JavaScript变量提升机制详解与实例分析.pdf

JavaScript变量提升

JavaScript中,函数及变量的都将被提升到函数的最顶部。

JavaScript中,变量可以在使用后,也就是变量可以先使用再。

以下两个实例将获得相同的结果:

实例1

x=5;//变量x设置为5

elem=document.getElementById(demo);//查找元素

elem.innerHTML=x;//在元素中显示x

varx;//x

尝试一下»

实例2

varx;//x

x=5;//变量x设置为5

elem=document.getElementById(demo);//查找元素

elem.innerHTML=x;//在元素中显示x

尝试一下»

要理解以上实例就需要理解hoisting(变量提升)。

变量提升:函数和变量总是会被解释器悄悄地被提升到方法体的最顶部。

JavaScript初始化不会提升

JavaScript只有的变量会提升,初始化的不会。

以下两个实例结果结果不相同:

实例1

varx=5;//初始化x

vary=7;//初始化y

elem=document.getElementById(demo);//查找元素

elem.innerHTML=x++y;//显示x和y

尝试一下»

实例2

varx=5;//初始化x

elem=document.getElementById(demo);//查找元素

elem.innerHTML=x++y;//显示x和y

vary=7;//初始化y

尝试一下»

实例2的y输出了undefined,这是因为变量(vary)提升了,但是初始化(y=7)并不会提升,所以y变量是一个未定

义的变量。

实例2类似以下代码:

varx5;//初始化x

vary;//y

elem=document.getElementById(demo);//查找元素

elem.innerHTML=x++y;//显示x和y

y=7;//设置y为7

在头部你的变量

对于大多数程序员来说并不知道JavaScript变量提升。

如果程序员不能很好的理解变量提升,他们写的程序就容易出现一些问题。

为了避免这些问题,通常我们在每个作用域开始前这些变量,这也是正常的JavaScript解析步骤,易于我们理解。

JavaScript严格模式(strictmode)不允许使用未的变量。

在下一个章节中会学习到严格模式(strictmode)。

←JavaScript调试

JavaScript严格模式→

笔记前必须登录!

文档评论(0)

1亿VIP精品文档

相关文档