zoukankan      html  css  js  c++  java
  • js词法作用域规则

    function foo() {
    console.log( a ); // 2不是3
    }


    function bar() {
    var a = 3;
    foo();
    }

    var a = 2;
    bar();

    js中的作用域就是词法作用域 

    词法作用域是一套关于引擎如何寻找变量以及会在何处找到变量的规
    则。 词法作用域最重要的特征是它的定义过程发生在代码的书写阶段( 假设你没有使用
    eval() 或 with)

    而动态作用域并不关心函数和作用域是如何声明以及在何处声明的, 只关心它们从何处调
    用。 换句话说, 作用域链是基于调用栈的, 而不是代码中的作用域嵌套.

    所以js的作用域是词法作用域即从函数书写时的位置寻找.

    =====================================================================

    主要区别: 词法作用域是在写代码或者说定义时确定的, 而动态作用域是在运行时确定
    的。( this 也是! ) 词法作用域关注函数在何处声明, 而动态作用域关注函数从何处调用

  • 相关阅读:
    jieba库的使用和词云
    类和正则表达
    数据库实践
    自己的第一个网页
    第一个爬虫和测试
    Linux 知识总结
    Python argparse模块基本用法
    Python面向对象编程
    linux Nginx发布基于PHP的WEB
    Linux nginx发布基于python的WEB环境
  • 原文地址:https://www.cnblogs.com/a-flydog/p/5527168.html
Copyright © 2011-2022 走看看