博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js词法作用域规则
阅读量:6202 次
发布时间:2019-06-21

本文共 516 字,大约阅读时间需要 1 分钟。

function foo() {

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

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

var a = 2;

bar();

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

词法作用域是一套关于引擎如何寻找变量以及会在何处找到变量的规

则。 词法作用域最重要的特征是它的定义过程发生在代码的书写阶段( 假设你没有使用
eval() 或 with)

而动态作用域并不关心函数和作用域是如何声明以及在何处声明的, 只关心它们从何处调

用。 换句话说, 作用域链是基于调用栈的, 而不是代码中的作用域嵌套.

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

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

主要区别: 词法作用域是在写代码或者说定义时确定的, 而动态作用域是在运行时确定

的。( this 也是! ) 词法作用域关注函数在何处声明, 而动态作用域关注函数从何处调用

转载于:https://www.cnblogs.com/a-flydog/p/5527168.html

你可能感兴趣的文章
MVC模式下如何实现RegisterStartupScript等功能
查看>>
Ubuntu 无法mount解决办法
查看>>
CSS一些最佳实践
查看>>
8.Kubernetes Service(服务)
查看>>
图解DevExpress RichEditControl富文本的使用,附源码及官方API
查看>>
剖析 Laravel 计划任务--避免重复
查看>>
公司框架遇到的问题
查看>>
详解 Discuz 的 PHP经典加密解密函数 authcode
查看>>
Oracle如何删除表中重复记录
查看>>
nginx 是如何处理访问请求的
查看>>
wget参数用法详解
查看>>
使用curl命令查看访问url的时间
查看>>
python添加环境变量
查看>>
DP-01背包 (题)
查看>>
WinForm中跨线程操作控件
查看>>
CODING 敏捷实践完全指南
查看>>
unittest测试框架和测试报告的输出实例(一)
查看>>
下MFC中对象、句柄、ID之间的区别.
查看>>
如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
查看>>
Asp.Net MVC 分页、检索、排序整体实现
查看>>