作用域链概念介绍

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

    <script type="text/javascript">
        // 作用域链
        // 每一个函数都有一个作用域, 如果一个函数内部又嵌套链另外一个函数,
        // 嵌套的函数也会又一个作用域,这样,嵌套函数就能访问到外部函数中的变量,
        // 以及全局作用域中的变量,此时就形成了一条作用域链
        // (包括:自身的作用域, 以及外部函数的作用域, 以及全局作用域)

        // 全局作用域: script标签包裹的内容就是一个作用域
        var abc = 123;

        // fn 中能访问到的变量由那些:
        // 1 自身定义的变量
        // 2 上一级作用域中的变量(全局作用域)

        // foo 中能访问到的变量由那些:
        // 1 自身定义的变量
        // 2 函数fn中的变量
        // 3 全局作用域中的变量
        function fn() {
            var a = 456;

            function foo() {
                var num = 123;

                // f的作用域链: f作用域 -> foo作用域 -> fn作用域 -> 全局作用域
                function f() {}
            }
            foo();
            // console.log(num);
        }
    </script>
</body>
</html>
时间: 2024-10-14 19:51:13

作用域链概念介绍的相关文章

javascript作用域和作用域链简单介绍

作用域和作用域链简单介绍: 只要是一门程序语言,那么作用域就是一个不可逃避的问题,下面就通过实例简单介绍一下javascript的作用域和作用域链. 在javascript中,作用域分为两种: 1.全局作用域 2.局部作用域. 如何界定是何种作用域: 1.定义在所有函数之外的变量是具有全局作用域. 2.定义在函数之内的变量具有局部作用域,它的作用域就是变量所在的函数. 特别说明:所有末定义直接赋值的变量具有全局作用域. 作用域与作用域之间是可以层层包含的: 全局作用域可以包含局部作用域,局部作用

JavaScript基础概念之----作用域链

也称:词法作用域 JavaScript查找变量关联的值时,会遵循一个查找链,这个链是基于作用域的层次结构的. var a = 'hello'; var func1 = function(){ var func2 = function(){ console.log(a); } } //hello 如上图,查找过程如下: 1.在func2函数中查找变量a,如果找到了,直接输出值,如果没有找到,转到第2步 2.在func2的父函数 func1函数中继续查找,如果找到了,直接输出值,如果没有找到,转到第

作用域链

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链 作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript. JavaScript作用域 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变

javascript篇-----函数作用域,函数作用域链和声明提前

在一些类似C语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明它们的代码段之外是不可见的(也就是我们不能在代码段外直接访问代码段内声明的变量),我们称之为块级作用域,然而,不同于这类型的编程语言,javascript是没有块级作用域.取而代之的,javascript使用的是块级作用域:变量在声明它们的函数体以及这个函数体嵌套的任意函数体内都是有定义的. 在如下的所示的代码中,在不同位置定义了变量 i . j 和 k ,它们都在同一个作用域内——这三个变量在函数体内均是有定义

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链

作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript. JavaScript作用域 任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期.在JavaScript中,变量的作用域有全局作用域和局部作用域两种. 1.  全局作用域(Global S

JavaScript作用域和作用域链

JavaScript 开发进阶:理解 JavaScript 作用域和作用域链 来源:梦想天空  http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html 作用域是JavaScript最重要的概念之一,想要学好JavaScript就需要理解JavaScript作用域和作用域链的工作原理.今天这篇文章对JavaScript作用域和作用域链作简单的介绍,希望能帮助大家更好的学习JavaScript. Java

关于Javascript作用域及作用域链的总结

本文是根据以下文章以及<Javascript高级程序设计(第三版)>第四章相关内容总结的. 1.Javascript作用域原理,地址:http://www.laruence.com/2009/05/28/863.html 2.JavaScript 开发进阶:理解 JavaScript 作用域和作用域链,地址:http://www.cnblogs.com/lhb25/archive/2011/09/06/javascript-scope-chain.html 在介绍有关作用域的内容之前,先来介绍

javascript学习中自己对作用域和作用域链理解

在javascript学习中作用域和作用域链还是相对难理解些,下面我关于javascript作用域和作用域链做一下详细介绍,给各位初学者答疑解惑. 首先我们介绍一下什么是作用域?  从字面上理解就是起作用的区域.   作用域主要有两种作用域:      1.块级作用域(js 不支持):主要用于C系列语言中,例如:Java Object-c/Swift(苹果开发语言).C++/C#.在此不做过多说明.      2.词法作用域  一个变量的作用范围,在代码写出来的那一刻就定下来了,不会根据代码的运

Js 作用域与作用域链与执行上下文不得不说的故事 ?(? ???ω??? ?)?

最近在研究Js,发现自己对作用域,作用域链,活动对象这几个概念,理解得不是很清楚,所以拜读了@田小计划大神的博客与其他文章,受益匪浅,写这篇随笔算是自己的读书笔记吧~. 作用域 首先明确一个概念,js只有函数作用域(function-based),没有块级作用域,也就是只有函数会有自己的作用域,其他都没有. 接着,作用域分为全局作用域与局部作用域. 全局作用域中的对象可以在代码的任何地方访问,一般来说,下面情况的对象会在全局作用域中: 最外层函数和在最外层函数外面定义的变量 没有通过关键字"va