ECMAScript
文章平均质量分 87
szengtal
这个作者很懒,什么都没留下…
展开
-
函数参数arguments共享问题
函数参数arguments共享问题在JavaScript中,传进来的函数参数可以用函数上下文里的内部对象arguments访问1.。它包括如下属性:callee:指向当前函数的引用,length : 实际传递进来的参数的个数properties-indexes (字符串类型的整数) 属性的值就是函数的参数值(按参数列表从左到右排列)。 properties-indexes内部元素的个数等于arg原创 2017-01-14 15:08:13 · 327 阅读 · 0 评论 -
不可不谈的JavaScript性能核心----单态及多态等(二)
让我们谈谈JavaScript单态(二)未讨论的:在撰写本文时,故意略去了一些实现细节,以免它在内容上过去宽泛。形状我们没有讨论对象的形状(即隐藏类)是如何表示,如何得到的以及如何和对象绑定在一起的。可以看下过去写的这篇 post on inline caches 以及我过去的一些会谈,比如AWP2014 来获得一些基本的了解。 这里需要你知道的一件重要的事是:Ja...翻译 2018-04-19 00:35:48 · 328 阅读 · 0 评论 -
不可不谈的JavaScript性能核心----单态及多态等(一)
本文介绍了我们在V8或者其他JavaScript引擎的介绍中,经常会看到的:单态以及多态等这些概念,结合JavaScript自身的例子,阐释了不同状态下引擎内部的处理过程以及各种状态的特点。本人翻译自Vyacheslav Egorov 的文章,并获得原作者许可。让我们谈谈JavaScript单态 那些涉及到JavaScript性能的演讲或是blog中经常会强调单态代码的重要性...翻译 2018-04-19 00:29:40 · 804 阅读 · 0 评论 -
你不知道的JavaScript--数值表示
JavaScript中数字的相关这部分介绍了JavaScript数值相关的一些比较底层的知识和概念,阅读之前,要对IEEE754的数值表示有个大概的理解。本文是个人积累的一点关于数值方面存在的问题,以及对问题原因的解释。1.MAX_VALUE与Infinity 为什么Number.MAX_VALUE + 1 !=Infinity ? 首先我们要看看在IEEE种二者分别是怎...原创 2018-04-12 16:46:49 · 329 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(一)--- 简介
本文翻译自Dmitry Soshnikov的关于ECMAScript 系列的文章。其中涉及理论较多,如果想要更好的明白里面所讲的,要对ECMAScript 中相关概念本身有一点的基础,对于之前从未了解过得,推荐先到Dmitry Soshnikov文章中看完ES3系列的介绍,里面也有中文版本。此外,由于理论较多,难免会存在语言的上的生涩或者纰漏以及不规范之处,希望指正。这个系列分成了八个小篇章,可能翻译 2017-12-05 23:10:00 · 2794 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(三)--- 执行上下文
执行上下文的结构 这部分主要讨论在ES5中执行上文(同执行环境)的结构,它与ES3中的有一些不同,先看看它的组成组件:ExecutionContextES5 = { ThisBinding: <this value>, VariableEnvironment: { ... }, LexicalEnvironment: { ... },} 在执行上下文中...翻译 2017-12-05 23:22:21 · 1127 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(二)--- 环境记录项
环境记录类型 ES5中有两种类型的环境记录项,分别是声明式环境记录项和对象式环境记录项。声明式环境记录项 声明式环境记录项是用来处理变量声明,函数声明以及形参与值的绑定,这些都出现在函数作用域中(这与ES3中的激活记录一致)或者catch从句中。 例如:// all: "a", "b" and "c"// bindings are bindings of// a declarative翻译 2017-12-05 23:15:45 · 1385 阅读 · 0 评论 -
关于Asm.js的一些基本介绍和它的实现
Asm介绍asm是mozilla提出的一套基于JS的语法标准,由 Mozilla 的 Emscripten项目催生而来,主要为了解决js执行效率问题,尤其是通过Emscripten转换过来的js代码效率。那什么是Emscripten和asm,关于它的诞生,最主要的原因就是js执行效率低下。(目前asm已经由几家公司进行标准化,形成了WebAssembly,关于WebAssembly的内容,可以去看下原创 2017-04-23 17:01:10 · 10113 阅读 · 0 评论 -
ECMA-262-5 词法环境:通用理论(四)--- 环境
这一章我们将介绍词法作用域的技术实现。同时,在进一步介绍涉及到的一些高度抽象的实体和讲解词法作用域的时候,本文将开始使用环境的概念而不是作用域。”环境”是在ES5时期被引入规范中,与它一起的还包括全局环境和函数的局部环境等。翻译 2017-12-05 18:07:56 · 1222 阅读 · 2 评论 -
ECMA-262-5 词法环境:通用理论(三)--- 标识符绑定
标识符绑定命名绑定 在高度抽象的语言,我们不再需要通过操作底层的地址来访问内存中的某个数据,而是通过更方便的,以标识符(变量名)的形式来获取想要的数据。 命名绑定就是将一个标识符和一个对象绑定在一起。 一个标识符不仅可以被绑定,也可以被取消绑定。当标识符绑定到一个对象上,那么这个标识符引用了这个对象,通过它就可以去访问以及修改那个对象。 有两个与绑定相关的重要概念,分别是重绑定以及改变翻译 2017-12-05 17:19:37 · 752 阅读 · 0 评论 -
ECMA-262-5 词法环境:通用理论(二)--- 动态作用域
与静态作用域不同,动态作用域下,变量与值的绑定不能在词法分析阶段确定。一般来说,动态作用域中变量与值并不是通过词法环境中绑定的,而是通过一个全局的动态栈来管理的。每当遇到一个变量声明,就会把这个变量名放入这个栈中,当这个变量的生命周期结束时,又会把这个变量从栈中移除。 这意味着,在一个简单的函数中就可以存在无限多的关于同一个变量的解释,这都取决于函数的调用环境。翻译 2017-12-05 17:11:25 · 621 阅读 · 0 评论 -
ECMA-262-5 词法环境:通用理论(一)--- 作用域
ECMA-262-5 词法环境:通用理论译者按:本文翻译自Dmitry Soshnikov的关于ECMAScript 系列的文章。其中涉及理论较多,如果想要更好的明白里面所讲的,要对ECMAScript 中相关概念本身有一点的基础,对于之前从未了解过得,推荐先到Dmitry Soshnikov文章中看完ES3系列的介绍,里面也有中文版本。此外,由于理论较多,难免会存在语言的上的生涩或者纰漏,希望指正翻译 2017-12-05 17:03:26 · 1637 阅读 · 1 评论 -
ECMA-262-5 词法环境:ECMA实现(四)--- 标识符解析及其他
标识符解析标识符解析是指在执行阶段决定一个出现在上下文中,使用词法环境的标识符的绑定关系的过程。 换句话说,这一个作用域链查找过程。在上面说过,这类似于原型链的查找,而在这里是通过词法环境的outter属性。翻译 2017-12-05 23:24:53 · 730 阅读 · 0 评论 -
关于WebAssembly的一些介绍和开发
近几年,WebAssembly在快速的成长中,被称为未来的web发展方向。本文主要介绍关于WebAssembly的一篇介绍,包括和asm.js的一些对比,以及WebAssembly的一些特性和开发方式。 本文主要内容来自Google I/O '17中Alex Danilo的关于WebAssembly的主题演讲。感原创 2017-09-17 12:50:09 · 3425 阅读 · 0 评论 -
JavaScript 执行上下文和变量对象
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I原创 2017-01-17 01:39:56 · 413 阅读 · 0 评论 -
JavaScript关于类型转换
一个关于JavaScript类型转换的问题( [ ][ [] ] + [ ] )[ -~{} ] + ( {} + {} )[ -~{} - ~{} ]这篇文章主要通过一条完全由符号组成的语句来分析JavaScript是如何执行的。首先,将式子分为两部分: 1. ( [][ [] ] + [])[ -~{}] 2. ( {} + {} )[ -~{} - ~{} ]第一部分先来看...原创 2019-06-01 21:38:39 · 191 阅读 · 0 评论