`
format_me
  • 浏览: 31780 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

深入理解JavaScript变量作用域

阅读更多

摘自《JavaScript 权威指南》

 

 

 

全局变量具有全局作用域,在函数中声明的变量具有局部的作用域。如果一个函数定义嵌套在另一个函数中,那么在嵌套的函数中声明的变量就具有嵌套的局部作用域。

 

         每个JavaScript执行环境都有一个和她相关联在一起的作用域(scope chain)。这个作用域链是一个对象列表或对象链。当JavaScript代码需要查询变量x的值时,它就开始查看该链的第一个对象。如果那个对象有一个名为x的属性,那么就采用那个属性的值。如果第一个对象没有名为x的属性,JavaScript就会继续查询链中的第二个对象。如果第二个对象仍然没有名为x的属性,那么就继续查询下一个对象,以此类推。

 

         JavaScript的顶层代码中,作用域链只由一个对象构成,那就是全局对象。所有的变量都是在这一对象中查询。如果一个变量并不存在,那么这个变量的值就是未定义的。在一个(非嵌套)函数中,作用域链是由两个对象构成的,第一个是函数的调用对象,第二个就是全局对象。当函数引用一个变量时,首先检查的是调用对象(局部作用域),其次才检查全局对象(全局作用域)。在一个嵌套函数的作用域链中可以有三个或更多的对象。

分享到:
评论

相关推荐

    javascript变量作用域

    了解 JavaScript 变量作用域的规则非常重要,因为它可以帮助我们更好地理解和使用 JavaScript 语言。同时,了解变量作用域的规则也可以帮助我们避免一些常见的错误和问题。 在实际开发中,了解变量作用域的规则可以...

    理解JavaScript变量作用域.pdf

    理解JavaScript变量作用域.pdf 本人还有几十本经典javascript书籍以及无数javascript资料,要的加我qq 568094881,本人网址:www.maoshanhai.com

    深入理解变量作用域

    ### 深入理解变量作用域 #### 一、引言 在JavaScript编程语言中,作用域是一个核心概念,它决定了变量的可见性和生命周期。作用域不仅影响着代码的执行效率,更是解决bug的关键所在。本文将从JavaScript权威指南...

    深入理解JavaScript作用域和作用域链

    深入理解JavaScript作用域和作用域链对于编写高效、无错的代码至关重要。正确管理作用域可以避免全局变量冲突,提高代码的复用性和模块化,同时也有助于提升性能,因为局部变量的访问速度通常比全局变量快。在实际...

    深入理解JavaScript系列

    深入理解JavaScript系列(14):作用域链(Scope Chain) 深入理解JavaScript系列(15):函数(Functions) 深入理解JavaScript系列(16):闭包(Closures) 深入理解JavaScript系列(17):面向对象编程之一般...

    深入理解JavaScript作用域共12页.pdf.zip

    本资料"深入理解JavaScript作用域共12页.pdf"将详细探讨这一主题。 在JavaScript中,作用域主要有两种类型:全局作用域和局部作用域。全局作用域的变量在整个脚本中都是可访问的,而局部作用域的变量只在其声明的...

    js变量作用域

    通过对JavaScript中变量作用域的深入分析,我们可以更好地理解面向对象编程的概念以及如何有效地管理变量的作用域。这对于编写高效、可维护的JavaScript代码至关重要。理解这些概念不仅能帮助我们避免常见的错误,还...

    JavaScript 基础函数_深入剖析变量和作用域

    JavaScript是一种广泛用于网页开发的脚本语言,它的函数和作用域是实现代码逻辑结构和模块...理解JavaScript中的变量作用域非常重要,它有助于避免变量命名冲突和意外的变量修改,从而编写出更加健壮和易于维护的代码。

    基于JavaScript的变量作用域的辨析.pdf

    基于JavaScript的变量作用域的辨析 本文探讨了JavaScript中的变量作用域问题,通过对两种变量的特性从不同角度进行分析和测试,讨论了如何控制变量作用域的有效方法。 变量作用域是JavaScript编程过程中经常遇到的...

    理解JavaScript变量作用域更轻松

    本文不打算深入讲解JavaScript变量作用域问题(其实本人也没有能力能把这一话题讲的深入些),也不讲“闭包”话题,本文只讨论最实用的JavaScript作用域知识点。 一、JavaScript作用域分类 JavaScript就两种作用域:...

    JavaScript程序设计-变量作用域.pdf

    总结,理解JavaScript的变量作用域对于编写高效且无错的代码至关重要。全局变量应谨慎使用,以避免命名冲突和潜在的内存泄漏。局部变量有助于限制作用域,提高代码可读性和性能。掌握变量提升、词法作用域和作用域链...

    JavaScript变量作用域_动力节点Java学院整理

    在深入理解JavaScript变量作用域的概念之前,首先我们需要了解JavaScript中变量是如何声明的。在JavaScript中,可以使用`var`关键字来声明变量,这些变量会受到作用域规则的影响。变量的作用域决定了在何处可以访问...

    JavaScript程序设计变量作用域共4页.pdf.zi

    本文将深入探讨JavaScript中的变量作用域,以及它如何影响代码的运行和组织。 首先,我们来理解什么是变量作用域。在JavaScript中,变量作用域决定了变量在何处可以被访问和识别。主要有三种类型的作用域:全局作用...

    一道关于JavaScript变量作用域的面试题_.docx

    总结一下,理解JavaScript变量作用域对于编写正确、可维护的代码至关重要。全局变量应谨慎使用,以减少命名冲突和内存泄漏的风险。局部变量则有助于提高代码的封装性和可读性。同时,要特别注意for循环中变量的初始...

    深入理解JavaScript系列(.chm)

    深入理解JavaScript系列(14):作用域链 Scope Chain 深入理解JavaScript系列(15):函数(Functions) 深入理解JavaScript系列(16):闭包(Closures) 深入理解JavaScript系列(17):面向对象编程之一般...

    JavaScript的变量作用域深入理解

    在深入探讨JavaScript变量作用域的知识点之前,我们首先需要了解什么是变量作用域。在编程语言中,作用域定义了变量或函数的可见性和生命周期。作用域决定了代码块内变量的可访问性,以及它们在哪里可用。 ...

    理解JavaScript作用域和作用域链

    作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理。今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript。任何程序...

Global site tag (gtag.js) - Google Analytics