精华帖 (8) :: 良好帖 (3) :: 新手帖 (18) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-26
sky54521 写道 bugmenot 写道 sky54521 写道 这种水平的js剖析能称得上“内核”?!
基本是js入门水平,js是动态编程语言,一切都是动态的 所谓js内核应该是承载js的chrome中使用的js解析器v8 如果你深入v8你再来说js内核吧大哥~~~ 大大连解析器和解释器也没分清楚就拿V8举例,且不说V8内部也没有解释器 我靠,js的解析器和解释器有啥区别? 那你的意思分别指的是? 解析器,解释器之类区别的建议看看这个http://www.iteye.com/topic/492667已经被转了N++次的文章,写的很详细,也很优秀。 |
|
返回顶楼 | |
发表时间:2011-01-26
sky54521 写道 这种水平的js剖析能称得上“内核”?!
基本是js入门水平,js是动态编程语言,一切都是动态的 所谓js内核应该是承载js的chrome中使用的js解析器v8 如果你深入v8你再来说js内核吧大哥~~~ 1. 为什么叫“内核”,建议先翻下之前的评论. 2. 你的观点“JS是动态语言”,和这个系列是否叫“内核”没有一丁点的关系,请提供充分的论据。 3. JS的引擎,如上边这位朋友bugmenot所列举,有很多的,为什么要深入V8才能说内核,也请给出充分的理由。 |
|
返回顶楼 | |
发表时间:2011-01-26
bugmenot 写道 楼主大大,ECMA-262的名字是ECMAScript,但从来没有过叫ECMAScript-262的东西
1.2.3的描述也过时了,从现在这个时刻来看新的主流浏览器,全部都是会编译JS的了 Chrome Chromium - V8,只编译不解释,新版本引入了多层编译 FireFox 4 - JaegerMonkey,基本上只编译并且是多层编译,一开始就编译而不解释,只在trace阶段短暂解释一下 Safari - Nitro,只编译不解释 Opera 10.5 - Carakan,热点编译 IE9 - Chakra,热点编译 1.3.3,UltraEdit也用JavaScript做嵌入脚本,好使 2.1 Date和RegExp等也是内建的对象类型吧 2.1.1 “数字”在JavaScript里的表现要符合IEEE 754双精度浮点数的规定,值得强调 ECMA 262 写道 The Number type has exactly 18437736874454810627 (that is, 264−253+3) values, representing the double-precision 64-bit format IEEE 754 values as specified in the IEEE Standard for Binary Floating-Point Arithmetic
不过现在主流高性能JS引擎都想办法优化它,在合理范围内用小整数来存数字 3 ECMAScript与JSON是两个独立的规范,它们甚至在细微处有不兼容的地方,所以用JSON来解释JavaScript对象是不合适的。ECMAScript Harmony还专门为解决与JSON间的兼容性问题而有大量讨论。 sky54521 写道 这种水平的js剖析能称得上“内核”?!
基本是js入门水平,js是动态编程语言,一切都是动态的 所谓js内核应该是承载js的chrome中使用的js解析器v8 如果你深入v8你再来说js内核吧大哥~~~ 大大连解析器和解释器也没分清楚就拿V8举例,且不说V8内部也没有解释器 谢谢你的细心,也谢谢你提出的问题,我正在做校正,包括错别字,名词的不统一等问题。 |
|
返回顶楼 | |
发表时间:2011-01-26
最后修改:2011-01-26
楼主大大,这边继续
3.1.3 原型不是JavaScript特有的概念。最初的JavaScript不是基于原型的。JavaScript也受到80年代末一种基于原型的语言Self的影响,后来才加入了原型。楼主大大可参考http://stackoverflow.com/questions/1951972/prototype-based-language。 JavaScript通过原型访问属性是“copy-on-write”,读访问的过程跟书中所述相似,写访问直接在当前对象上赋值 7.3.1 现在JavaScript已经不流行引用计数方式管理内存,主流都转向标记清除或其它tracing算法为基础。 IE的JScript从一开始就是标记清除式,而VBScript则引用计数。IE容易引发内存泄漏主要在JS与DOM交互时,这个边界上是引用计数的。假如有一个DOM节点被附加了一个JS对象,而该JS对象里又有属性指向那个DOM节点,这种引用关系就很容易引发内存泄漏。跟闭包没直接关系。 8.1.1 引用,书中的例子不就跟Java的一样嘛,算不上“跟其他语言不同” |
|
返回顶楼 | |
发表时间:2011-01-26
bugmenot 写道 楼主大大,这边继续
3.1.3 原型不是JavaScript特有的概念。最初的JavaScript不是基于原型的。JavaScript也受到80年代末一种基于原型的语言Self的影响,后来才加入了原型。楼主大大可参考http://stackoverflow.com/questions/1951972/prototype-based-language。 JavaScript通过原型访问属性是“copy-on-write”,读访问的过程跟书中所述相似,写访问直接在当前对象上赋值 7.3.1 现在JavaScript已经不流行引用计数方式管理内存,主流都转向标记清除或其它tracing算法为基础。 IE的JScript从一开始就是标记清除式,而VBScript则引用计数。IE容易引发内存泄漏主要在JS与DOM交互时,这个边界上是引用计数的。假如有一个DOM节点被附加了一个JS对象,而该JS对象里又有属性指向那个DOM节点,这种引用关系就很容易引发内存泄漏。跟闭包没直接关系。 8.1.1 引用,书中的例子不就跟Java的一样嘛,算不上“跟其他语言不同” 我印象中BE的《history of javascript》中,说到关于当时设计JavaScript时从self, scheme, 和C中获得的灵感,至于是时间上我确实不清楚。 垃圾回收及内存泄漏等问题在这个版本中描述的比较简单,主要是由于我对有些算法还没有深入研究,不便多说,因此篇幅较短,我会找时间专门来研究。 我说的“与其他语言不同”的意思是,像在C语言中,不通过指针,而是局部变量的话: #include <stdio.h> typedef struct{ int value; }s_integer; int main(int argc, char *argv[]){ s_integer a; s_integer b, c; b = a; c = a; a.value = 15; printf("%d\n", a.value); printf("%d\n", b.value); printf("%d\n", c.value); } 修改a,并不会影响到b,c。但是如果a.value=15;这条语句放到b=a,c=a之前的话,则会得到不同的结果。 总之,还是很感谢你,希望读到/关注此系列的朋友能像你一样,言之有物,条理分明。而不是纯粹的牢骚或者攻击。 |
|
返回顶楼 | |
发表时间:2011-01-26
abruzzi 写道 我说的“与其他语言不同”的意思是,像在C语言中,不通过指针,而是局部变量的话:
#include <stdio.h> typedef struct{ int value; }s_integer; int main(int argc, char *argv[]){ s_integer a; s_integer b, c; b = a; c = a; a.value = 15; printf("%d\n", a.value); printf("%d\n", b.value); printf("%d\n", c.value); } 修改a,并不会影响到b,c。但是如果a.value=15;这条语句放到b=a,c=a之前的话,则会得到不同的结果。 但举例应该拿对等或相似的概念来对比,既然是讲解引用,应该拿其它语言的引用来对比才对。所以如果拿Java、C#、ActionScript 3等语言的引用来跟JavaScript的对比,会看到它们非常相似,并没有多少“不同”。 而这里的C语言例子不合适在于,a, b, c都不是引用,它们都是C语言的结构体的值,而C语言的结构体是值类型而不是引用类型的,概念上差很多,并不能说这是JS与C“在引用上的差异”。 |
|
返回顶楼 | |
发表时间:2011-01-27
λ-lambda 写道 我作为UNIX2(还未发布)的作者,尚且不敢贸然写书... 说这些是什么意思? |
|
返回顶楼 | |
发表时间:2011-01-27
Javakeith 写道 λ-lambda 写道 我作为UNIX2(还未发布)的作者,尚且不敢贸然写书...
说这些是什么意思? 往前翻翻,怎么都不看上下文呢? |
|
返回顶楼 | |
发表时间:2011-01-27
fch415 写道 花了3分钟,掠读了你的“JS内核”一书。
我的评价是: 1、很多概念自己都没整明白,就敢写书了。比如:this、闭包、内存泄漏、对象定义。 2、很多知识点都没有章节。比如:作用域、引用传递还是值传递。 3、很多机制的阐述上不深入,也能叫Core? 总结: 这是一本只适合初学者看看的JS基础的书,其文字简明、通俗、直白,喜欢以代码例子说明概念,适合作为内部培训材料。 由于你按照书的标准在写,则很多深入概念上存在“误人子弟”的作用。所以我建议你在一些复杂知识点上作"免责申明":该章节的文字并不代表完全真实的概念或机理,仅作为通俗简介来看待,读者意会即可。 呵呵,我作为JSDK的作者,尚不敢贸然写书。现在,敢以书的形式写教程的人真是越来越多了! 你倒是写点啊,光说不练 |
|
返回顶楼 | |
发表时间:2011-01-27
严重支持楼主,楼上有些人,除了发牢骚和无脑攻击,还能干啥?真觉得自己有水平,你也整点教程(如楼主),开源(如温少)出来呗。在论坛上吹牛,有什么意思,搞点实际的
|
|
返回顶楼 | |