• 《ES6标准入门》学习总结


    第1章 ECMAScript 6简介

    1.ES是JS的规格,JS是ES的实现。

    2.es-checker模块可以查看本机对ES6的支持程度。

    3.Babel是转码器,配置文件是.babelrc,可以通过babel-cli进行命令行转码。

    4.babel-node是随着babel-cli一起安装的,babe-node命令可以直接运行ES6脚本。

    5.babel-register只会对require命令加载的文件进行转码,使用babel-core可以调用Babel的API进行转码。

    6.babel-polyfill为当前环境提供一个垫片,可以转码JS的新的API。

    7.Babel也可以用于浏览器环境。可以使用babel-standalone模块提供的浏览器版本,将其插入网页。

    8.ESLint和测试框架Mocha需要Babel进行前置转码。

    9.Traceur转码器可以直接插入网页,可以进行在线转换或命令行转换,也可以用于Node环境转换。

    第2章 let和const命令

    1.for循环设置循环变量的那部分是一个父作用域,而循环体内部是一个单独的子作用域。

    2.var命令会发生变量提升,即变量可以在声明前使用,值为undefined。为了纠正这种现象,let命令改变了语法行为。它所声明的变量一定要在声明后使用,否则便会报错。

    3.如果区块中存在let和const命令,则这个区块对这些命令声明的变量从一开始就形成封闭作用域。只要声明之前就使用这些变量,就会报错。这在语法上成为暂时性死区(TDZ)。

    4.let不允许在相同作用域内重复声明同一个变量。

    5.ES5只有全局作用域和函数作用域,ES6新增了块级作用域。

    6.在ES5中,函数声明会被提升到函数头部。应该避免在块级作用域内声明函数。如果确实需要,应该写成函数表达式的形式。

    7.块级作用域可以变为表达式,即可以返回值,办法就是在块级作用域之前加上do,使它变为do表达式。

    8.const实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址不得改动。

    9.ES6声明变量的6种方法:var、function、let、const、import和class。

    10.在浏览器和Web Worker中,self也指向顶层对象。

    第3章 变量的解构赋值

    1.如果解构不成功,变量的值就等于undefined。

    2.不完全解构,即等号左边的模式只匹配一部分的等号右边的数组。这种情况下,解构依然可以成功。

    3.对于Set结构,也可以使用数组的解构赋值。只要某种数据结构具有Iterator接口,都可以采用数组形式的解构赋值。

    4.解构赋值允许指定默认值。默认值生效的条件是,对象的属性值严格等于undefined。

    5.字符串、数值、布尔值、函数参数也可以解构赋值。

    6.不要在模式中放置圆括号,赋值语句的非模式部分可以使用圆括号。

    7.变量解构赋值的用途有:交换变量的值、从函数返回多个值、函数参数的定义、提取JSON数据、函数参数的默认值、遍历Map结构、输入模块的指定方法。

    第4章 字符串的扩展

    1.ES6加强了对Unicode的支持,并且扩展了字符串对象。

    2.由于charAt()和charCodeAt()的局限性,ES6新增了codePointAt()方法。

    3.使用for...of循环会正确识别32位的UTF-16字符。

    4.String.fromCharCode()不能识别大于0xFFFF的码点,String.fromCodePoint()可以识别大于0xFFFF的码点。

    5.ES6为字符串添加了遍历器接口,使得字符串可以由for...of循环遍历。

    6.at方法可以识别Unicode编号大于0xFFFF的字符,返回正确的字符。

    7.ES6为字符串提供了normalize方法,用来将字符的不同表示方法统一为同样的形式,这称为Unicode正规化。

    8.ES6新增了includes()、startsWith()、endsWith()、repeat()、padStart()、padEnd()方法。

    9.ES6新增了模板字符串,可以嵌套使用。

    10.eval()方法可以将字符串变为函数。

    11.模板字符串可以紧跟在一个函数的后面,该函数将被调用来处理这个模板字符串。这被称为标签模板的功能。标签模板的一个重要的应用就是过滤HTML字符串,防止用户输入恶意内容,也可用于多语言切换。

    12.模板处理函数的第一个参数(模板字符串数组)还有一个raw属性,保存的是转义后的原字符串。

    13.ES6还为原生的String对象提供了一个raw方法。

    第5章 正则的扩展

    1.new RegExp时,第一个参数是字符串或正则表达式,第二个参数是修饰符。

    2.字符串具有match、replace、search、split4个方法可以使用正则表达式。

    3.ES6对正则表达式增加了u修饰符,含义为Unicode模式,用来正确处理大于\uFFFF的Unicode字符。

    4.y修饰符叫做粘连修饰符,s修饰符是dotAll模式。

    5.现在js可支持先行断言、先行否定断言、后行断言、后行否定断言。

    6.提案引入\p和\P,允许正则表达式匹配符合Unicode某种属性的所有字符。

    7.正则表达式使用圆括号进行组匹配,具名组匹配允许为每一个组匹配指定一个名字,既便于阅读代码,又便于引用。

    8.如果要在正则表达式内部引用某个“具名组匹配”,可以使用\k<组名>的写法。

    第6章 数值的扩展

    1.ES6提供了二进制和八进制的新写法,分别用0b和0o表示。

    2.ES6在Number对象上提供了Number.isFinite()、Number.isNaN()、Number.parseInt()、Number.parseFloat()、Number.isInteger()方法。

    3.Number.EPSILON是一个极小的常量,是一个可以接受的误差范围。

    4.Number有最大安全整数和最小安全整数的概念,用Number.isSafeInteger()来判断。

    5.Math对象新增的方法有Math.trunc()、Math.sign()、Math.cbrt()、Math.clz32()、Math.imul()、Math.fround()、Math.hypot()。

    6.ES6新增了4个对数相关的方法:expm1()、log1p()、log10()、log2(),新增了6个双曲函数方法。

    7.Math.signbit()方法判断一个数的符号位是否已经设置。

    8.ES6新增了指数运算符**。

    9.新的数据类型Integer只用来表示整数,没有位数的限制,任何位数的整数都可以精确表示。Integer类型的数据必须使用后缀n来表示。

    第7章 函数的扩展

    1.

  • 相关阅读:
    奔跑吧DKY——团队Scrum冲刺阶段-Day 3
    奔跑吧DKY——团队Scrum冲刺阶段-Day 2
    奔跑吧DKY——团队Scrum冲刺阶段博客汇总
    奔跑吧DKY——团队Scrum冲刺阶段-Day 1-领航
    哈夫曼编码的实现
    电子政务作业——我为政府网站纠错
    20172309 2018-2019《程序设计与数据结构》课程总结
    # Do—Now——团队冲刺博客_总结篇
    数据结构之哈夫曼树
    关于在ViewPager的子页面中不能跳转的问题
  • 原文地址:https://www.cnblogs.com/luoyihao/p/15751566.html
Copyright © 2020-2023  润新知