javascript
文章平均质量分 95
szengtal
这个作者很懒,什么都没留下…
展开
-
关于WebAssembly的一些介绍和开发
近几年,WebAssembly在快速的成长中,被称为未来的web发展方向。本文主要介绍关于WebAssembly的一篇介绍,包括和asm.js的一些对比,以及WebAssembly的一些特性和开发方式。 本文主要内容来自Google I/O '17中Alex Danilo的关于WebAssembly的主题演讲。感原创 2017-09-17 12:50:09 · 3425 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(四)--- 标识符解析及其他
标识符解析标识符解析是指在执行阶段决定一个出现在上下文中,使用词法环境的标识符的绑定关系的过程。 换句话说,这一个作用域链查找过程。在上面说过,这类似于原型链的查找,而在这里是通过词法环境的outter属性。翻译 2017-12-05 23:24:53 · 730 阅读 · 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 评论 -
javascript,chrome与幽灵攻击---JavaScript,chrome with Spectre Attacks
   &a原创 2018-09-22 00:35:14 · 1173 阅读 · 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 评论 -
V8中关于对象表示的简单介绍
众所周知,V8采用了很多先进的思想和技巧来加速JavaScript的执行。其中重要的一点就是关于对象的表示。本文只介绍关于对象的表示,所以会隐去一些过程和相关细节。对象的结构 v8会把对象看作一个单独的类,像Java中的类那样,也就是隐藏类,它在V8的内部就是一个Map结构。 当对象每新增一个的属性都会生成为一个新的Map。这个Map描述了一个对象在内存中...原创 2018-03-23 23:59:11 · 638 阅读 · 0 评论 -
ECMA-262-5 词法环境:ECMA实现(三)--- 执行上下文
执行上下文的结构 这部分主要讨论在ES5中执行上文(同执行环境)的结构,它与ES3中的有一些不同,先看看它的组成组件:ExecutionContextES5 = { ThisBinding: <this value>, VariableEnvironment: { ... }, LexicalEnvironment: { ... },} 在执行上下文中...翻译 2017-12-05 23:22:21 · 1127 阅读 · 0 评论 -
V8中的多态内联缓存PIC
Google的V8作为最优秀的浏览器引擎,在它的内部实现上采用了很多的奇淫巧计,而如果你要想去深入了解下V8的构造,的确需要去了解很多它所包含的思想。其中之一就是大名鼎鼎的polymorphic inline cache(PIC),即多态内联缓存。多态内联缓存的用途之一就是V8通过隐藏类技术加PIC来加速Javascript对象属性的访问。目前很多关于V8的文章中都会提到隐藏类或者属性的快速...原创 2017-06-04 20:25:00 · 3003 阅读 · 0 评论 -
V8中的快速属性访问-Fast Properties in V8
V8中的快速属性访问 本文内容来来自V8项目官方博客内容,使用知识共享署名 3.0 未本地化版本许可协议,如果转载本文,需注明出处。本文主要介绍V8通过隐藏类技术,达到快速属性访问的效果。 本文将向我们展示V8底层如何去处理JavaScript中的属性。从JavaScript的角度来看,不同类别的属性之间只有一些很少的必要的区别。大多数时候,JavaScript对象就像字典,字符串...翻译 2018-01-14 01:01:40 · 1320 阅读 · 0 评论 -
“解析JavaScript — lazy 是否比 eager更好?”
“解析JavaScript — lazy 是否比 eager更好?” 本文理论内容来自JSConf EU 2017 中“Parsing JavaScript — better lazy than eager?”为题的主题演讲。V8与解析器 每个JavaScript代码在浏览器中被执行,经历的的第一步就是parser,解析器。 解析器会将JavaScript源码生...原创 2017-12-28 18:03:52 · 898 阅读 · 0 评论 -
新版V8引擎的一些介绍和了解
本文简单介绍在关于新于V8引擎的一些东西。主要内容包括:V8对于不同设备,不同需要情况下提供了最合适的优化;简单介绍V8引擎的最新架构,包括新的解释器以及优化编译器和垃圾回收器;介绍了对于ES2015语法的优化程度;介绍新版dev Tools的新功能特性;最后介绍了V8对于webassembly的支持。原创 2017-05-21 20:52:08 · 3384 阅读 · 0 评论 -
关于Asm.js的一些基本介绍和它的实现
Asm介绍asm是mozilla提出的一套基于JS的语法标准,由 Mozilla 的 Emscripten项目催生而来,主要为了解决js执行效率问题,尤其是通过Emscripten转换过来的js代码效率。那什么是Emscripten和asm,关于它的诞生,最主要的原因就是js执行效率低下。(目前asm已经由几家公司进行标准化,形成了WebAssembly,关于WebAssembly的内容,可以去看下原创 2017-04-23 17:01:10 · 10114 阅读 · 0 评论 -
JavaScript关于类型转换
一个关于JavaScript类型转换的问题( [ ][ [] ] + [ ] )[ -~{} ] + ( {} + {} )[ -~{} - ~{} ]这篇文章主要通过一条完全由符号组成的语句来分析JavaScript是如何执行的。首先,将式子分为两部分: 1. ( [][ [] ] + [])[ -~{}] 2. ( {} + {} )[ -~{} - ~{} ]第一部分先来看...原创 2019-06-01 21:38:39 · 191 阅读 · 0 评论