ES6躬行记(9)——字符串】的更多相关文章

古语云:“纸上得来终觉浅,绝知此事要躬行”.的确,不管看了多少本书,如果自己不实践,那么就很难领会其中的精髓.自己研读过许多ES6相关的书籍和资料,平时工作中也会用到,但在用到时经常需要上搜索引擎中查询相关知识概念,并且对很多知识也仅仅是略知一二,没有领会到其中的原理.为此,开辟了<ES6躬行记>系列,将ES6相关的知识系统的记录下来,以便自己翻阅,也希望能帮助到广大网友. 在ES6之前的版本中,用于声明变量的关键字只有var,并且没有块级作用域,只有函数作用域和全局作用域,但在ES6中已改变…
ES6躬行记(18)--迭代器 要实现以下接口## next() ,return,throw 可以用for-of保证迭代对象的正确性 例如 var str = "向…
在介绍字符串之前,有必要先了解一点Unicode的基础知识,有助于理解ES6提供的新功能和新特性. 一.Unicode Unicode是一种字符集(即多个字符的集合),它的目标是涵盖世界上的所有字符,为其提供唯一的标识符,这个标识符叫做码位或码点(Code Point).码位既可以用一个从0开始计算的数值表示,也可以用U+作为前缀后面紧跟十六进制数表示. Unicode只规定了每个字符的码位,但并没有规定如何用字节序列(即二进制数字存储方式)表示字符,于是就出现了字符编码(Character E…
模板字面量(Template Literal)是一种能够嵌入表达式的格式化字符串,有别于普通字符串,它使用反引号(`)包裹字符序列,而不是双引号或单引号.模板字面量包含特定形式的占位符(${expression}),由美元符号.大括号以及合法的表达式组成,合法的表达式(expression)可以是变量.算术或函数调用,甚至还可以是模板字面量.在ES6引入模板字面量后,就能避免用若干个加号来实现字符串拼接,而改用更为优雅的语法来替代,下面用新旧两种方式分别来组合字符串. var name = "s…
ES6的继承依然是基于原型的继承,但语法更为简洁清晰.通过一个extends关键字,就能描述两个类之间的继承关系(如下代码所示),在此关键字之前的Man是子类(即派生类),而在其之后的People是父类(即基类或超类). class People { constructor() { this.age = 28; } getAge() { return this.age; } static getName() { return "strick"; } } class Man extend…
一.箭头函数 箭头函数(Arrow Function)是ES6提供的一个很实用的新功能,与普通函数相比,不但在语法上更为简洁,而且在使用时也有更多注意点,下面列出了其中的三点: (1)由于不能作为构造函数,因此也就没有元属性(new.target)和原型(prototype属性). (2)函数体内不存在arguments.super和this,即没有为它们绑定值. (3)当需要包含多个参数时,它们的名称不可重复. 1)语法 箭头函数由三部分组成:箭头(=>).参数和函数体,省略了名称和funct…
一.简洁属性和方法 当创建对象字面量时,如果属性值是与属性同名的已定义的标识符(例如变量.常量等),那么ES6允许省略冒号和属性值,这样就能避免冗余的初始化.下面分别用传统的键值对和最新的简写方式创建对象字面量,可以明显的看出,第二种书写起来更加精炼. let name = "strick", age = 28, obj; //键值对的写法 obj = { name: name, age: age }; //只有属性名的简洁写法 obj = { name, age }; 属性上的方法也…
根据ES6制订的标准自定义迭代器实现起来比较复杂,因此ES6又引入了生成器的概念,生成器(Generator)是一个能直接创建并返回迭代器的特殊函数,可将其赋给可迭代对象的Symbol.iterator属性.与普通函数不同,生成器不仅可以暂停函数内部的执行(即维护内部的状态),在声明时还需要包含一个星号(*),并且拥有next().return()和throw()三个迭代器方法. 一.function* 生成器在声明时,需要把星号加到function关键字与函数名之间,但ES6没有规定星号两边是…
ES6将迭代器和生成器内置到语言中,不仅简化了数据处理和集合操作,还弥补了for.while等普通循环的不足,例如难以遍历无穷集合或自定义的树结构等. 迭代器(Iterator)是一种用于迭代的对象,可有序的依次访问集合中的数据项.ES6制订了一套标准化的迭代器接口(包含3个方法,如表11所列),只要实现了这套接口都能成为迭代器. 表11 迭代器接口 方法 返回值 描述 next() IteratorResult 必选,获取下一个迭代器结果 return() IteratorResult 可选,…
一.Map Map类似于Object(对象),可用来存储键值对,但需要通过SameValueZero算法保持键的唯一性.与Set一样,在使用之前也得要实例化,如下代码所示,构造函数Map()中的参数也是一个可选的可迭代对象,但此对象得是键值对的集合或两列的二维数组. new Map(); //Map(0) {} new Map([["name", "strick"], ["age", 28]]); //Map(2) {"name&quo…