JavaScript科普小知识

来源:互联网 发布:java开发人员培训机构 编辑:程序博客网 时间:2024/04/27 14:02

1、JavaScript  ! = ECMAScript

很多人都认为,ECMAScript 就是 JavaScript。其实,ECMAScript 是一种标准化的语言规范,JavaScript 只不过是使用 ECMAScript 这种语言作为自己的核心语言功能而已。

所以,正确的等价应该是这样子:JavaScript = ECMAScript + DOM + BOM

ECMAScript是一种通过ECMA-262标准化的脚本程序设计语言,Javasrcipt是ECMA-262标准化的实现和扩展。

DOM文档对象模型, 分为三部分,核心 DOM ,XML DOM ,HTML DOM,简洁点,用HTML举个例子,用人话说, DOM就 是关于如何获取、修改、添加或删除 HTML 元素的标准。

BOM浏览器对象模型,支持访问和操作浏览器窗口的对象模型,开发人员可以使用BOM控制浏览器页面以外的部分。下面的用法就是BOM的扩展:
  1. 弹出新浏览器窗口的功能;
  2. 移动、缩放和关闭浏览器窗口的功能;
  3. 提供浏览器详细信息的navigator对象;
  4. 提供浏览器锁加载页面详细信息的lacation对象;
  5. 提供用户显示器分辨率详细信息的screen对象;
  6. 对cookies支持;
  7. 像XMLHttpRequest和IE的 ActiveXObject这样的自定义对象;
由于现在H5的流行,BOM的实现细节越来越重要。而且这BOM一点是很多JS初学者忽略的。

2、关于浏览器内核

浏览器内核正确的解释就是 渲染引擎,复制对网页的语法解释(CSS,HTML,JavaScript),渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。

换话说,就是不同的浏览器引擎渲染出来的页面有所不同。

  • 现在流行的内核有:
  • Trident(IE内核)
  • Gecko(Firefox内核)
  • Webkit(Safari内核,Chrome内核原型,开源)
  • Presto内核:目前只有Opera浏览器采用该内核

而且值得注意的是,一般的IOS或安卓手机的浏览器内核都是Webkit,其实微信浏览器的浏览器内核是属于Webkit,并不是属于什么QQ浏览器内核,只不过QQ在浏览器上面对Webkit进行一些封装而已。

3、关于netscape 

如果有看一些JS的参考资料,肯定有提到netscape,但是没有对netscape详细说明,所有有很多对netscape不了解的同学。
百度netscape后,得到的结果是 网景公司,其实这个公司背后是有一个故事的。
当年浏览器市场正打开的时候,就是netscape 公司的浏览器(Netscape Navigator)是占据主导地位。后来,在微软看到netscape发展神速,认识到互联网浏览器的重要性,之后微软调集了全公司最优秀的团队整合到一起进行IE(Internet Explorer)的开发,在浏览器上奋力追赶Netscape Navigator,正当Netscape Navigator和微软的 IE(Internet Explorer)在浏览器市场上激烈竞争的时候,微软利用的windows用户量这一优点,使用必杀技,把IE与Windows进行捆绑,双箭齐发,于是就把Netscape干掉,后来Netscape 经历收购,解散,最后退出历史舞台,其源代码采用新的排版引擎,最后命名为Gecko。
那为什么当年IE这么强,现在就各种不兼容呢?其实,之后微软觉得打败netscape 后,浏览器市场已经是微软的天下,就将IE的顶尖工程师团队分散到其他研发团队。于是乎,IE就进入了维护期(修修bug,打打酱油……),在产品上相对于FF和chrome也没有绝对的优势可言,面对FF和chrome的快速迭代,IE也就有些招架不住了,面对各种前沿技术各种不兼容,于是慢慢丢掉了市场份额(现在微软把IE绑定在windows中,IE虽不兼容,仍然是我们需要解决的问题)。




2 0
原创粉丝点击