zoukankan      html  css  js  c++  java
  • js高级---js架构


    ECMAScript
    1997 年欧洲计算机制造商协会 39 号技术委员会制定了ECMA-262标准(别名 ECMAScript),而浏览器只是负责实现,ie浏览器实现的结果是jscript,远景浏览器实现的是javascript,其它浏览器这个时候还处于受精状态。
    所以ECMAScript的版本和javascript和jscript版本并不一定一致。
    tip:
    1、ECMAScript标准是受javascript影响而诞生的,是javascript那帮人提交的提案给的ECMA协会的,等协会标准出台时,javascript都更新到1.1了,jscript也诞生了。所以,javascript和jscript早于ECMAScript标准
    2、不要看现在的ECMAScript6挺火的,什么模块,类及其继承。在es4就出来了。只不过出生的太早,时机未到,就在公开的前一天被扼杀了。后来在原来es3的基础上修改了点东西,内部叫做es3.1,正式发布更名为es5,就是现在当前(2017)浏览器实现的主流标准。
    说到es6,不得不说目前个大浏览器实现(es6协议)太慢了,es7都出来了,es6支持还捉襟见肘

    Dom
    W3C即万维网联盟是另个一个标准协议---Dom标准(网页对象模型,事件、节点、样式)。
    IE 浏览器4 和远景浏览器4在开发页面上方面各持己见,为了方便开发人员统一开发,1998年W3C制定了Dom标准

    Bom
    而Bom则一直没有被标准化,直到html5,才被w3c写入规范

    其它
    浏览器内核---用于排版html布局的引擎:熟知的有Trident内核(ie使用)、Webkit内核(早期chrome使用)、Gecko内核(fireFox使用)、Presto内核(Opera使用)...
    js引擎---用于运行高性能js的编译器:普通js是不需要编译的就直接可以被浏览器解释执行,但是总有些不安分的浏览器,为了性能,搞出了个js界编译器,将js部分编译成字节码文件,好让浏览器内置的js解释器快速执行。因为js解释器一般是用c++、java写的,他们执行字节码文件更快。如v8引擎(chrome、nodejs在用)、SpiderMonkey引擎(fireFox在用)

    如果你了解java,我就用java语言去对比
    js解释器,就类似于java的JVM,都是负责执行代码的。
    js的引擎,就类似于java的javac,负责编译成二进制的字节码文件的
    浏览器均内置js解释器(不要转牛角尖,我说的是在js发明之后)、但是只有牛逼的浏览器才内置js引擎

    另外浏览器对dom渲染和js解释执行有关系,
    一方面,js执行会影响到dom的渲染,所以建议js代码放到页面的最下边
    另一方面,而js去动态操作dom元素的时候,如果js放在上边,可能捕获不到dom元素,因为此时dom元素可能还没有渲染完
    所以综上所述,都应该把js放到页面的底部,或者加上onload事件等等


    关于js的面向对象
    js原型与原型链,js是基于原型的面向对象语言(java是基于class的面相对象语言)

    关于js的闭包
    一个是为了防止变量作用于的污染,另一个是为了方便内部函数取外部函数的值(等同于Java的内部类)


    还有重要的一点是:对于ECMAScript标准的实现,除了ie的jscript和远景的javascript,其它浏览器均没有专门为其实现起名字,比如360明明可以起一个名字叫360script,遨游可以起一个叫遨游script,但是!!!他们很多浏览器连内核都用谷歌和火狐的,你认为ECMAScript标准他们愿意亲自去实现?!而且ie实现了,又干不过远景的实现javascript。所以,现在各大浏览器的实现,对ECMAScript标准的支持,一般都叫javascript,即js,没必要死扣这一点

    电子书推荐
    JavaScript高级程序设计(第3版):http://pan.baidu.com/s/1i5LybIX
    ECMA-262-5.1中文版:http://pan.baidu.com/s/1pKXMNiz

  • 相关阅读:
    蓝桥杯 算法训练 ALGO-57 删除多余括号
    蓝桥杯 算法训练 ALGO-50 数组查找及替换
    蓝桥杯 算法训练 ALGO-60 矩阵乘法
    求最大公约数和最小公倍数的几种方法
    南阳OJ 1170 最大的数
    蓝桥杯 基础练习 BASIC-30 阶乘计算
    蓝桥杯 算法训练 ALGO-108 最大的体积
    蓝桥杯 算法训练 ALGO-114 黑白无常
    蓝桥杯 算法训练 ALGO-93 反置数
    蓝桥杯 算法训练 ALGO-21 装箱问题
  • 原文地址:https://www.cnblogs.com/dshvv/p/7059153.html
Copyright © 2011-2022 走看看