`

深入理解 JavaScript 之基础

阅读更多

以前总觉得javascript仅仅是一个浏览器端的脚本语言,完成操作DHTML和css。给网页一些动态性。对于Jquery、Dojo、 MooTool等也听说很久了,但是没有深入的了解。最近看Jquery的代码,发现javascript原来可以写的如此优雅和简介。再假设该最近 Node.js等服务器端javascript的发展,感觉自己对javascript的认识有很大的误区和局限,于是想仔细看看javascript的 前世今生。然后在把webkit的源代码品读一番,作为自己原来小觑javascript的补偿。

一:javascript的出生

计算机领域很多伟大的、庞大的技术,都有一个伟大的人物,现在在国内几乎没有那个公司可以独立的开发出浏览器。在很久之前有个人自己发明了 javascript。1994年的时候网景公司(NetScape)发布了世界上第一个比较出名的浏览器Navigator,这个浏览器仅仅可以浏览网 页,没有任何交互交互效果。当然那时候肯定更没有flash和Sliverlight技术。此时的浏览器估计就是一个有排版功能的记事本的样子。用户在表 单里面填写的任何信息,必须提交到服务器上面,有服务器进行校验然后在把结果返回给客户端,再由客户端提示给用户。这浪费了很大的时间和资源。于是函数式 编程的爱好者 布兰登·艾克Brendan Eich) 登场了,他负责开发一门新语言,能够嵌入到浏览器里面执行,完成表单校验、html、css操作等功能。他仅用10天时间就完成了javascript的初版。他当时的设计思路大概是:

以下引用自阮一峰的blog

1:借鉴C语言的基本语法

2:借鉴Java的数据类型和内存管理。

3:借鉴Scheme语言,将函数式编程升级为一等公民

4:借鉴Self语言,使用原型(prototype)继承机制

最初叫LiveScript,在跟sun合作之后才改名为javascript。

二:Javascript引擎 javascript的设计之初,主要是嵌入在浏览器里面执行。浏览器主要有二部分构成,主要包括排版引擎和javascript引擎。主要出名的javascript引擎包括:

firefox浏览器

(1)SpiderMonkey

这算是第一款javascript引擎,由javascript的发明人布兰登.艾克在网景公司时用C语言写成。

(2)Rhino

由网景公司的Norris Boyd开发,用java语言实现。

微软IE

Chakra (JScript引擎),中文译名为查克拉,用于Internet Explorer 9的32位版本[1]及Internet Explorer 10。

Opera浏览器

Carakan,由Opera软件公司编写,自Opera10.50版本开始使用。

webkit的 JavaScriptCore

Webkit是一个开源的浏览器引擎,许多浏览器都用Webkit作为引擎,比如苹果的Safari,google的Chrome浏览器,android上的浏览器核心也是Webkit。Webkit包括WebCore的排版引擎和JsCore引擎。

webkit_overview

(5)V8

是google的开源项目,是用于Google Chrome的js引擎

为了缩短由垃圾收集造成的停顿,V8 使用stop-the-world, generational, accurate 的垃圾收集器。[5]在执行回收之时会暂时中断程序的执行,而且只处理对象堆栈。还会收集內存内所有对象的指针,可以避免内存溢出的情况。V8汇编器是基于Strongtalk汇编器。

各个浏览器的内核了解,现在主流的的浏览器包括:IE、Firefox、Chrome、Opera、Safari。国产的浏览器主要有360、搜狗、QQ、UCWeb等浏览器、世界之窗等

先总结一下各大浏览器:

Firefox:和网景公司的NetScape有着天生的联系,初期的版本就是采用网景开放的源代码。布局引擎是

再总结一下国产的浏览器:

360浏览器:360安全浏览器是采用IE内核,是有世界之窗和360合作的东东。360极速浏览器是基于Chromium开源项目,同时又集成了IE内核。需要切换引擎。

搜狗浏览器:采用Ie内核和WebKit内核。

QQ浏览器5:采用Webkit的布局引擎和JavaScriptV8引擎,向Chrome靠拢。

0
1
分享到:
评论

相关推荐

    JavaScript入门篇,JavaScript基础知识

    例如,《深入浅出JavaScript》等书籍可以帮助你更深入地理解JavaScript。 在学习过程中,动手实践是非常重要的。你可以尝试编写一些基础的JavaScript代码,或者参与一些在线编程挑战,以此来提高你的实际编程能力。...

    JavaScript基础以及示例

    提供一些基本JavaScript的应用示例,目的是帮助读者了解JavaScript的基本语法,深入的学习是需要自己去实践的.

    JavaScript基础教程第8版

    第1章 了解JavaScript 1 1.1 JavaScript是什么 1 1.2 JavaScript不是Java 2 1.3 JavaScript的起源 3 1.4 JavaScript可以做什么 3 1.5 JavaScript不能做什么 3 1.6 Ajax是什么 4 1.7 组合式(snap-...

    《JavaScript:基础教程(第8版)》

    《javascript基础教程(第8版)》循序渐进地讲述了javascript 及相关的css、dom、ajax、jquery 等技术。...第1章 了解javascript 1 第2章 开始 13 第3章 第一个web应用程序 33 第4章 处理图像 59 第5章 窗口与框架 83

    AJAX入门之深入理解JavaScript中的函数.doc

    函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解。javascript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的。通过函数对象的性质,可以很方便的将一个函数...

    《深入理解Ajax基于JavaScript的RIA开发》配书源码

    《深入理解Ajax基于JavaScript的RIA开发》配书源码 是开发网站的基础。。

    JavaScript编程全解

    本书涵盖了JavaScript开发中各个方面的主题,对从... 本书适合JavaScript开发初学者系统入门、有经验的JavaScript开发者深入理解语言本质,也适合 开发团队负责人、项目负责人作为综合性的JavaScript参考书阅读。

    JavaScript面试揭秘:掌握这些高频题,轻松征服面试官!.zip

    本内容梳理了20个高频面试题,涵盖了JavaScript的基础知识、高级特性以及编程技巧,帮助求职者深入理解JavaScript的核心概念,提升面试表现。 适应人群: 即将参加前端开发岗位面试的求职者 希望提升JavaScript技能...

    JavaScript忍者秘籍

    将严谨的理论讲解和实用的代码示例相结合,引导读者更加深入地了解JavaScript的神奇,充分展示了JavaScript语言的各种特性。, 本书适合具备一定的JavaScript基础知识的读者阅读,也适合从事程序设计工作并想要深入...

    JavaScript宝典(第7版)

    经典畅销书 JavaScript宝典(第7版) 将帮您实现这些夙愿,它在大量示例代码和可运行脚本的引导下,指导您快速掌握JavaScript基础知识,并制定出最符合预定网站目标的策略。通过认真研读本书,您将可以编写脚本来实现...

    2024高频前端面试题 JavaScript

    文章内容包括JavaScript基础概念、语法和概念、DOM操作、高级特性以及常见面试题及解答。文章旨在帮助面试者更好地准备JavaScript相关的面试,提高对JavaScript的理解和应用能力。 【适用人群】 这篇文章主要面向...

    JavaScript宝典(第7版)( (美)Danny Goodman) 高清中文扫描版.pdf

    经典畅销书们avascript宝典(第7版)》将帮您实现这些夙愿,它在大量示例代码和可运行脚本的引导下,指导您快速掌握javascript基础知识,并制定出最符合预定网站目标的策略。通过认真研读本书,您将可以编写脚本来实现...

    全面前端开发指南:从基础到深入

    这是一个非常全面的前端学习指南,涵盖了从HTML、CSS、JavaScript基础知识到各种前端框架。 内容概要: 本指南涵盖了从前端基础知识到各种前端框架、工具和技术的广泛范围。主要包括HTML、CSS、JavaScript的基础...

    2024年学习JavaScript这一篇就够了.zip

    通过跟随博客,读者可以了解JavaScript的基础知识、特点和应用场景,学会如何选择和使用合适的工具和框架,参与JavaScript社区,并为未来的深入学习打下坚实的基础。 ### 其他说明 本博客注重实用性和易懂性,尽量...

    JavaScript忍者秘籍.azw3

    将严谨的理论讲解和实用的代码示例相结合,引导读者更加深入地了解JavaScript的神奇,充分展示了JavaScript语言的各种特性。 本书适合具备一定的JavaScript基础知识的读者阅读,也适合从事程序设计工作并想要深入...

    深入理解JavaScript中的对象

    主要介绍了深入理解JavaScript中的对象,是JS入门学习中的基础知识,需要的朋友可以参考下

    JavaScript核心概念及实践 高清PDF扫描版 (邱俊涛).pdf

    《JavaScript核心概念及实践》不仅帮助读者迅速掌握JavaScript基础知识和核心技术,而且通过实例讲解如何将这些知识和技术理解应用到实际工作中,提升编程能力,以简洁、优美的代码开发出功能强大且更易于维护和扩展...

    理解JavaScript表单的基础知识

    主要带领大家理解JavaScript表单的基础知识,对javascript表单脚本进行深入学习,感兴趣的小伙伴们可以参考一下

Global site tag (gtag.js) - Google Analytics