JavaScript科普小知识
2016-06-22 15:59
447 查看
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的扩展:
弹出新浏览器窗口的功能;
移动、缩放和关闭浏览器窗口的功能;
提供浏览器详细信息的navigator对象;
提供浏览器锁加载页面详细信息的lacation对象;
提供用户显示器分辨率详细信息的screen对象;
对cookies支持;
像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虽不兼容,仍然是我们需要解决的问题)。
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解
- call/apply/bind 的理解与实例分享