狠狠撸

狠狠撸Share a Scribd company logo
Ecma script3
Ecma script3
Ecma script3
Ecma script3
全局上下文
全局代码
函数上下文
函数代码
eval上下文
eval代码
作用域链
Scope chain
this
变量对象
Variable object
Calling context:
全局上下文
Calling context:
test上下文
EC 栈
inner EC
全局 EC
foo ECeval EC
Ecma script3
Ecma script3
全局上下文
全局对象
函数上下文
激活对象
eval上下文
Calling
context.vo
内置
NaN
undefined
parseFloat
eval
parseInt
Object
Function
……
用户添加
……
宿主环境
window
alert
……
Ecma script3
{ DontEnum }
Ecma script3
Ecma script3
Ecma script3
Ecma script3
Ecma script3
Ecma script3
function test(y){
var x
function x() {}
}
test(1);
function test(y){
alert(x);
var x = 10;
alert(x);
x = 20;
function x() {}
alert(x);
alert(y);
}
test(1);
function test(y){
alert(x);
x = 10;
alert(x);
x = 20;
alert(x);
alert(y);
}
test(1);
Ecma script3
Ecma script3
Ecma script3
全局上下文
scope chain = [全局对象]
函数上下文
scope chain = 激活对象 + function.[[scope]]
eval上下文
scope chain = calling context.scope chain
function.[[scope]] =
函数创建时所在EC.scope chain
Ecma script3
Ecma script3
base object test ao
property name x
标示符解析
Identifier Resolution
1.从作用域链中
取下一个元素
Result(1).[[HasProperty]](Identifier)
No
Yes
base object Result(1)
property name Identifier
Yes
No
base object null
property name Identifier
? 确定当前变量属于作用域链中的哪个
变量对象
? 永远返回Reference
Ecma script3
Ecma script3
Ecma script3
Ecma script3
全局上下文
this = 全局对象
eval上下文
this = calling context.this
函数上下文
this = ?
Ecma script3
函数调用语法:
表达式 ( );
是否是
Reference
是否是激活
对象
global object
global object
Reference.base object
Yes No
Yes No
求值
Ecma script3
Ecma script3
Ecma script3

More Related Content

What's hot (20)

The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)
jeffz
?
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutorInside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Ady Liu
?
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
hoopchina
?
About closure
About closureAbout closure
About closure
otakustay
?
狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验
QLeelulu
?
骋罢别蝉迟交流与经验总结
骋罢别蝉迟交流与经验总结骋罢别蝉迟交流与经验总结
骋罢别蝉迟交流与经验总结
coderzh
?
闯补惫补华为面试题
闯补惫补华为面试题闯补惫补华为面试题
闯补惫补华为面试题
yiditushe
?
Use Lambdas in Android
Use Lambdas in AndroidUse Lambdas in Android
Use Lambdas in Android
koji lin
?
基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册
基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册
基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册
Zhen Li
?
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程
Bobby Zhou
?
检查实现类
检查实现类检查实现类
检查实现类
Wu Liang
?
简单介绍闯补惫补厂肠谤颈辫迟变数范围
简单介绍闯补惫补厂肠谤颈辫迟变数范围简单介绍闯补惫补厂肠谤颈辫迟变数范围
简单介绍闯补惫补厂肠谤颈辫迟变数范围
林儀泰 Tommy Lin
?
闯蝉肠别虫:案例、经验、阻碍、展望
闯蝉肠别虫:案例、经验、阻碍、展望闯蝉肠别虫:案例、经验、阻碍、展望
闯蝉肠别虫:案例、经验、阻碍、展望
jeffz
?
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1
Sheng-Han Su
?
所谓闭包
所谓闭包所谓闭包
所谓闭包
ilovey4
?
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器  - Tomcat 原始碼分析深入淺出 Web 容器  - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
?
The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)The Evolution of Async Programming (GZ TechParty C#)
The Evolution of Async Programming (GZ TechParty C#)
jeffz
?
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutorInside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Inside.java.concurrency 35.thread pool.part8_future.scheduledthreadpoolexecutor
Ady Liu
?
PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术PHPUnit + Xdebug 单元测试技术
PHPUnit + Xdebug 单元测试技术
hoopchina
?
狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验狈辞诲别.箩蝉开发体验
狈辞诲别.箩蝉开发体验
QLeelulu
?
骋罢别蝉迟交流与经验总结
骋罢别蝉迟交流与经验总结骋罢别蝉迟交流与经验总结
骋罢别蝉迟交流与经验总结
coderzh
?
闯补惫补华为面试题
闯补惫补华为面试题闯补惫补华为面试题
闯补惫补华为面试题
yiditushe
?
Use Lambdas in Android
Use Lambdas in AndroidUse Lambdas in Android
Use Lambdas in Android
koji lin
?
基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册
基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册
基于贰肠濒颈辫蝉别和丑补诲辞辞辫平台应用开发入门手册
Zhen Li
?
JavaScript 教程
JavaScript 教程JavaScript 教程
JavaScript 教程
Bobby Zhou
?
检查实现类
检查实现类检查实现类
检查实现类
Wu Liang
?
简单介绍闯补惫补厂肠谤颈辫迟变数范围
简单介绍闯补惫补厂肠谤颈辫迟变数范围简单介绍闯补惫补厂肠谤颈辫迟变数范围
简单介绍闯补惫补厂肠谤颈辫迟变数范围
林儀泰 Tommy Lin
?
闯蝉肠别虫:案例、经验、阻碍、展望
闯蝉肠别虫:案例、经验、阻碍、展望闯蝉肠别虫:案例、经验、阻碍、展望
闯蝉肠别虫:案例、经验、阻碍、展望
jeffz
?
JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1JavaScript 快速複習 2017Q1
JavaScript 快速複習 2017Q1
Sheng-Han Su
?
所谓闭包
所谓闭包所谓闭包
所谓闭包
ilovey4
?
深入淺出 Web 容器 - Tomcat 原始碼分析
深入淺出 Web 容器  - Tomcat 原始碼分析深入淺出 Web 容器  - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin
?

Viewers also liked (17)

TlaxcalaTlaxcala
Tlaxcala
Berthín Ramos García
?
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
ACA IT-Solutions
?
PortfolioPortfolio
Portfolio
Valeria Berra
?
Vállalkozz okosan profitálj biztosan
Vállalkozz okosan profitálj biztosanVállalkozz okosan profitálj biztosan
Vállalkozz okosan profitálj biztosan
Orsolya Turay
?
Mole to Mole, Mole to Gram
Mole to Mole, Mole to GramMole to Mole, Mole to Gram
Mole to Mole, Mole to Gram
Keenan Reardon
?
Modified pushup analysis
Modified pushup analysisModified pushup analysis
Modified pushup analysis
janlee97
?
Ud1.3 parallels
Ud1.3 parallelsUd1.3 parallels
Ud1.3 parallels
Julia Mena
?
JI Pedrosas - Planifica??o: Alimenta??oJI Pedrosas - Planifica??o: Alimenta??o
JI Pedrosas - Planifica??o: Alimenta??o
mvaznunes
?
Mal-material a?iqlamasi1
Mal-material a?iqlamasi1Mal-material a?iqlamasi1
Mal-material a?iqlamasi1
Elnur Ahmedov
?
Re commercial-energy
Re commercial-energyRe commercial-energy
Re commercial-energy
Dawn OBrien-Williamson
?
Psak20
Psak20Psak20
Psak20
Nita Putri
?
Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015
Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015
Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015
Kre?imir Krolo
?
The meadowbank experience lessons learned about gold
The meadowbank experience  lessons learned about goldThe meadowbank experience  lessons learned about gold
The meadowbank experience lessons learned about gold
Agnico Eagle Mines
?
Psak06
Psak06Psak06
Psak06
Nita Putri
?
'DOCKER' & CLOUD: ENABLERS For DEVOPS
'DOCKER' & CLOUD:  ENABLERS For DEVOPS'DOCKER' & CLOUD:  ENABLERS For DEVOPS
'DOCKER' & CLOUD: ENABLERS For DEVOPS
ACA IT-Solutions
?
PortfolioPortfolio
Portfolio
Valeria Berra
?
Vállalkozz okosan profitálj biztosan
Vállalkozz okosan profitálj biztosanVállalkozz okosan profitálj biztosan
Vállalkozz okosan profitálj biztosan
Orsolya Turay
?
Mole to Mole, Mole to Gram
Mole to Mole, Mole to GramMole to Mole, Mole to Gram
Mole to Mole, Mole to Gram
Keenan Reardon
?
Modified pushup analysis
Modified pushup analysisModified pushup analysis
Modified pushup analysis
janlee97
?
JI Pedrosas - Planifica??o: Alimenta??oJI Pedrosas - Planifica??o: Alimenta??o
JI Pedrosas - Planifica??o: Alimenta??o
mvaznunes
?
Mal-material a?iqlamasi1
Mal-material a?iqlamasi1Mal-material a?iqlamasi1
Mal-material a?iqlamasi1
Elnur Ahmedov
?
Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015
Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015
Kulturne potrebe zadra – sociolo?ko istra?ivanje public24042015
Kre?imir Krolo
?
The meadowbank experience lessons learned about gold
The meadowbank experience  lessons learned about goldThe meadowbank experience  lessons learned about gold
The meadowbank experience lessons learned about gold
Agnico Eagle Mines
?

Similar to Ecma script3 (20)

潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
jay li
?
Scala
ScalaScala
Scala
popeast
?
肠辫辫肠丑别肠办源码分析
肠辫辫肠丑别肠办源码分析肠辫辫肠丑别肠办源码分析
肠辫辫肠丑别肠办源码分析
Wu Liang
?
颁程式-函式与巨集
颁程式-函式与巨集颁程式-函式与巨集
颁程式-函式与巨集
艾鍗科技
?
Java Script 引擎技术
Java Script 引擎技术Java Script 引擎技术
Java Script 引擎技术
bigqiang zou
?
Javascript share
Javascript shareJavascript share
Javascript share
Xu Mac
?
Java script closures
Java script closuresJava script closures
Java script closures
skywalker1114
?
Js is js(程劭非) (1)
Js is js(程劭非) (1)Js is js(程劭非) (1)
Js is js(程劭非) (1)
looneyren
?
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
?
第01章 绪论(java版)
第01章  绪论(java版)第01章  绪论(java版)
第01章 绪论(java版)
Yan Li
?
180518 ntut js and node
180518 ntut js and node180518 ntut js and node
180518 ntut js and node
Peter Yi
?
PHPUnit 入門介紹
PHPUnit 入門介紹PHPUnit 入門介紹
PHPUnit 入門介紹
Jace Ju
?
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
?
Arduino應用系統設計 - Arduino程式快速入門
Arduino應用系統設計 - Arduino程式快速入門Arduino應用系統設計 - Arduino程式快速入門
Arduino應用系統設計 - Arduino程式快速入門
吳錫修 (ShyiShiou Wu)
?
由一个简单的程序谈起--之四
由一个简单的程序谈起--之四由一个简单的程序谈起--之四
由一个简单的程序谈起--之四
yiditushe
?
twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹
twMVC
?
台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise
台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise
台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise
ZenChou2
?
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
潜力无限的编程语言闯补惫补蝉肠谤颈辫迟
jay li
?
肠辫辫肠丑别肠办源码分析
肠辫辫肠丑别肠办源码分析肠辫辫肠丑别肠办源码分析
肠辫辫肠丑别肠办源码分析
Wu Liang
?
颁程式-函式与巨集
颁程式-函式与巨集颁程式-函式与巨集
颁程式-函式与巨集
艾鍗科技
?
Java Script 引擎技术
Java Script 引擎技术Java Script 引擎技术
Java Script 引擎技术
bigqiang zou
?
Javascript share
Javascript shareJavascript share
Javascript share
Xu Mac
?
Js is js(程劭非) (1)
Js is js(程劭非) (1)Js is js(程劭非) (1)
Js is js(程劭非) (1)
looneyren
?
Ecma script edition5-小试
Ecma script edition5-小试Ecma script edition5-小试
Ecma script edition5-小试
lydiafly
?
第01章 绪论(java版)
第01章  绪论(java版)第01章  绪论(java版)
第01章 绪论(java版)
Yan Li
?
180518 ntut js and node
180518 ntut js and node180518 ntut js and node
180518 ntut js and node
Peter Yi
?
PHPUnit 入門介紹
PHPUnit 入門介紹PHPUnit 入門介紹
PHPUnit 入門介紹
Jace Ju
?
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
?
Arduino應用系統設計 - Arduino程式快速入門
Arduino應用系統設計 - Arduino程式快速入門Arduino應用系統設計 - Arduino程式快速入門
Arduino應用系統設計 - Arduino程式快速入門
吳錫修 (ShyiShiou Wu)
?
由一个简单的程序谈起--之四
由一个简单的程序谈起--之四由一个简单的程序谈起--之四
由一个简单的程序谈起--之四
yiditushe
?
twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹twMVC#27 | C# 7.0 新功能介紹
twMVC#27 | C# 7.0 新功能介紹
twMVC
?
台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise
台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise
台南好想工作室-想知道講座-ES6 進入天堂的窄門Promise
ZenChou2
?

Ecma script3