JavaScript——ES6相关知识(1)

1.ES5和ES6的区别?

        1)新增特性(网上的太多了,不过多赘述,后面做成单独版块)

        2) 优化: 

                        语言标准层面上, 实现了模块功能, 使得它成为了浏览器端和服务端通用的模块解决方案;理解学习起来更简单,使用起来更方便,功能更强大。

               性能:

                        字符串:

                之前的JavaScript只能识别“\u0000”~“\uFFFF”之间的Unicode码字符。超出这个范围的字符,必须用两个双字节的形式表示,所以会把“\u20BB7”理解成\u20BB+7,只会显示一个空格(\u20BB是一个不可打印字符),后面跟着一个7。ES6对这一点做出了改进,只要将码点放入大括号,就能正确解读该字符。“\u{20BB7}”解读为“𠮷”,相当于“\uD842\uDFB7”

                        遍历器:

                 ES6 为字符串添加了遍历器接口,使得字符串可以被for...of循环遍历。除了遍历字符串,这个遍历器最大的优点是可以识别大于0xFFFF的码点,传统的for循环无法识别这样的码点。

                        正则表达式:

                在 ES5 中,RegExp构造函数的参数有两种情况。

                第一种情况是,参数是字符串,这时第二个参数表示正则表达式的修饰符(flag)。

                第二种情况是,参数是一个正则表示式,这时会返回一个原有正则表达式的拷贝。

                但是,ES5不允许此时使用第二个参数添加修饰符,否则会报错。ES6改变了这种行为。如果RegExp构造函数第一个参数是一个正则对象,那么可以使用第二个参数指定修饰符。而且,返回的正则表达式会忽略原有的正则表达式的修饰符,只使用新指定的修饰符。

                 ES6对正则表达式添加了u修饰符,含义为“Unicode 模式”,用来正确处理大于\uFFFF的Unicode字符。也就是说,会正确处理四个字节的UTF-16编码。利用这一点,可以写出一个正确返回字符串长度的函数。

               缺陷:

                es6的兼容性不如es5,for循环永远是好的循环语句,所有浏览器都能运行。很多以前的项目需要es5来维护。
ECMAScript 6_百度百科ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。另外,一些情况下ES6也泛指ES2015及之后的新增特性,虽然之后的版本应当称为ES7、ES8等。https://baike.baidu.com/item/ECMAScript%206?fromtitle=ES6&fromid=24088827#3

        ES6也泛指ES2015及之后的新增特性。

        六代的前身是四代,四代因为更新跳度过大,遭到“和谐”

        ECMAScript 是 JavaScript 的标准规范, JavaScript 是 ECMAScript 的具体实现。

        JavaScript商标为网景公司所有,ECMAScript为提供JavaScript规范

2.ES6每年新发布功能的流程是什么样的?

        ES6新功能发布流程遵循TC39原则

        发布流程如下

  • stage0(strawman),任何TC39的成员都可以提交。
  • stage1(proposal),进入此阶段就意味着这一提案被认为是正式的了,需要对此提案的场景与API进行详尽的描述。
  • stage2(draft),演进到这一阶段的提案如果能最终进入到标准,那么在之后的阶段都不会有太大的变化,因为理论上只接受增量修改。
  • state3(candidate),这一阶段的提案只有在遇到了重大问题才会修改,规范文档需要被全面的完成。
  • state4(finished),这一阶段的提案将会被纳入到ES每年发布的规范之中。

转自:聊一聊进行中的TC39提案(stage1/2/3) - 知乎category: Learning date: 2021-6-16 title: 聊一聊进行中的TC39提案(stage1/2/3) 前言 最近看到了一些很有趣的ES提案,如Record与Tuple数据类型,思路来自RxJS的Observable,借鉴自函数式编程的throw Expressio…https://zhuanlan.zhihu.com/p/381256585

3.谈谈对浏览器的内核理解,主流浏览器的内核分别是什么?

        浏览器要渲染出网页给用户看,必须加载html编码js脚本,渲染引擎渲染页面的UI和js执行引擎操作内存,就是浏览器的的重要组成程序——内核

        1)Chrome浏览器内核:统称为Chromium内核或Chrome内核,以前是Webkit内核,现在是Blink内核(由google公司研发)

        2)Firefox浏览器内核:Gecko内核(排版引擎,开源)。俗称Firefox内核

        3)Safari浏览器内核:Webkit内核(开源)

        4)IE浏览器内核:Trident内核(微软),也是俗称的IE内核

        5)Opera浏览器内核:最初是自己的Presto内核(由Opera公司研发),后来是Webkit内核,现在是Blink内核

        6)Edge浏览器(2019大更新):Chromium内核(打不过就加入)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值