JavaScript 之 作用域

学习目标:能够说出Javascript的两种作用域

能够区分全局变量和局部变量

能够说出如何在作用域链中查找变量的值

1.作用域

<script>
        //1.javaScript作用域:就是代码名字(变量)在某个范围内起作用和效果 目的是为了提高程序的可靠性更重要的是减少命名冲突。
        //2.js的作用域(es6)之前:全局作用域 局部作用域
        //3.全局作用域:整个script标签 或者是一个单独的js文件
        var num = 10;
        //4.在函数内部就是局部作用域(函数作用域) 这个代码的名字只在函数内部起效果和作用
        function fn (){
            //局部作用域
            var num = 20;
        }
    </script>

2.1变量作用域的分类

根据作用域的不同 变量可以分为两种:

全局变量

局部变量

<script>
        //变量的作用域:根据作用于的不同我们变量分为全局变量和局部变量
        //1.全局变量:在全局作用域下的变量,在全局下都可使用
        // 注意:如果在函数内部 没有声明直接赋值的变量也属于全局变量
        var num = 10; //num就是一个全局变量
        console.log(num);
        function fn(){
            console.log();
            var num = 10;
        }
        //2.局部变量 在局部作用域下的变量 后者在函数内部的变量就是 局部变量
        //注意函数的形参也可以看作局部变量

        3.从执行效率来看全局和局部
        //(1)全局变量只有在内存关闭的时候才会销毁,比较占内存资源
        //(2)局部变量当我们程序执行完毕就会销毁比较节约内存资源
    </script>

3.作用域链(很简单)就近原则

<script>
        //作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取哪个值,这种结构我们称之为作用域链
        // 链式查找   就近原则
        var num = 10;
        function fn(){//外部函数
            var num = 20;
            function fun(){//内部函数
                console.log(num);
            }
        }
    </script>
(0)

相关推荐

  • JS匿名函数和闭包

    $(function() {}) 是$(document).ready(function()的简写, 这个函数什么时候执行的呢? 答案:DOM 加载完毕之后执行. 立即执行函数(function(){ ...

  • JavaScript——函数

    一.函数的定义与调用(与python类同)  // 无参函数 function f1() { console.log("Hello world!"); }; f1(); // 有参 ...

  • JavaScript 基础二

    函数 函数:函数就是封装了一段可以重复执行的代码块. function fn(){ console.log('我是函数') } fn(); function getSum(a,b){ return a ...

  • JavaScript基础总结(一)

    值类型(基本类型):字符串(String).数字(Number).布尔(Boolean).对空(Null).未定义(Undefined).Symbol.注:Symbol 是 ES6 引入了一种新的原始 ...

  • 什么是JavaScript的作用域

    作用域的概念 现代编程语言的最基本功能之一就是能够存储变量当中的值,以便于之后的使用于修改.也正是这个功能将状态带给了程序. 在JavaScript中,作用域就是一套设计良好的规则来存储变量. 简述编 ...

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

    目录 前言 作用域(Scope) 1.什么是作用域 2.全局作用域和函数作用域 3.块级作用域 作用域链 1.什么是自由变量 2.什么是作用域链 3.关于自由变量的取值 作用域与执行上下文 解释阶段: ...

  • JavaScript作用域

    作用域下的变量内存 · 全局变量(包括函数内无声名变量),在浏览器关闭时销毁 · 局部变量(包括函数形参),在执行完函数程序后销毁 作用域链 就近翻上查找变量输出 块级作用域 由于JavaScript ...

  • javascript执行上下文、作用域与闭包(第六篇)

    终于讲到闭包了,当你在百度上搜索闭包时,你会被搜索出来的结果吓一跳,我的天,为什么说得都不一样?直到把所有的解释都看过了,我就只想说一句,到底谁说的是对的- 在这么多的不同解释里,我认真思考了很久,到 ...

  • C++的标识符的作用域与可见性

    下面是关于C++的标识符的作用域与可见性学习记录,仅供参考 标识符的作用域与可见性 作用域是一个标识符在程序正文中有效的区域. 作用域分类 ①函数原型作用域 ②局部作用域(快作用域) ③类作用域 ④文 ...

  • 报告:JavaScript 开发者达1380 万,C#超越 PHP,Rust 增长最快

    出品|开源中国 文|白开水 研究公司 SlashData 最新发布的"State of the Developer Nation"第 20 版报告指出,全球开发者社区在过去六个月中 ...

  • javascript中的闭包这一篇就够了

    前端技术优选 今天 以下文章来源于程序员成长指北 ,作者koala 程序员成长指北专注 Node.js 技术栈分享,从 前端 到 Node.js 再到 后端数据库,祝您成为优秀的高级 Node.js ...

  • JavaScript 事件循环:从起源到浏览器再到 Node.js

    冰森 前端技术优选 今天 很多文章都在讨论事件循环 (Event Loop) 是什么,而几乎没有人讨论为什么 JavaScript 中会有事件循环.博主认为这是为什么很多人都不能很好理解事件循环的一个 ...

  • 用JavaScript打造AI应用-从Nodejs SDK 看DuerOS的技能开发

    为什么要掌握JavaScript呢? 使用JavaScript能能否开发AI应用么? 答案是肯定的. 全栈语言JavaScript 就全栈编程语言而言,与python 并驾齐驱的要算是JavaScri ...