美文网首页
ES6标准入门 读书笔记

ES6标准入门 读书笔记

作者: 吴桐97 | 来源:发表于2019-12-23 17:24 被阅读0次


《ES6标准入门》是一本开源的 JavaScript 语言教程,全面介绍 ECMAScript 6 新引入的语法特性。

ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。本书中提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。

ES6新引入的常用语法特性

let 和const

ES6中一般仅适用let 和const ,因为var命令会发生“变量提升的现象”,即变量可以再声明之前使用,值为undefined。这种情况十分奇怪,因为按照一般逻辑,变量应该在声明语句之后才可以使用。

所以为了纠正这种现象,从而出现了let , let命令所声明的变量一定要在声明后使用,否则报错。

let 一般在确定所声明的变量一定会改变时使用,如不确定则一般使用const;

JSON.stringify()

JSON.stringify() 方法将 JavaScript 对象转换为字符串。

模板字符串

一般传统的javascript语言,输出模板和字符串拼接,使用“+”进行拼接

ES6使用${}嵌入变量,用反引号(`)标识

如果在模板字符串中需要使用反引号,则前面要用反斜杠转义。

字符串的新增方法

String.fromCodePoint()

ES5 提供String.fromCharCode()方法,用于从 Unicode 码点返回对应字符,但是这个方法不能识别码点大于0xFFFF的字符。

String.raw()

ES6 还为原生的 String 对象,提供了一个raw()方法。该方法返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串,往往用于模板字符串的处理方法。

实例方法:includes(), startsWith(), endsWith()

传统上,JavaScript 只有indexOf方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。

includes():返回布尔值,表示是否找到了参数字符串。

startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。

endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。

let s = 'Hello world!';

s.startsWith('Hello') // true

s.endsWith('!') // true

s.includes('o') // true

endsWith的行为与其他两个方法有所不同。它针对前n个字符,而其他两个方法针对从第n个位置直到字符串结束。

repeat()

'x'.repeat(3) // "xxx"

'hello'.repeat(2) // "hellohello"

'na'.repeat(0) // "

参数如果是小数,会被取整。

'na'.repeat(2.9) // "nana"

如果repeat的参数是负数或者Infinity,会报错。

'na'.repeat(Infinity)// RangeError'na'.repeat(-1)

但是,如果参数是 0 到-1 之间的小数,则等同于 0,这是因为会先进行取整运算。0 到-1 之间的小数,取整以后等于-0,repeat视同为 0。

'na'.repeat(-0.9) // ""

参数NaN等同于 0。

'na'.repeat(NaN) // ""

如果repeat的参数是字符串,则会先转换成数字。

'na'.repeat('na') // ""'na'.repeat('3') // "nanana"

具名组匹配 

正则表达式使用圆括号进行组匹配。

const RE_DATE=/(\d{4})-(\d{2})-(\d{2})/;

上面代码中,正则表达式里面有三组圆括号。使用exec方法,就可以将这三组匹配结果提取出来。

const RE_DATE=/(\d{4})-(\d{2})-(\d{2})/;

const matchObj=RE_DATE.exec('1999-12-31');

const year=matchObj[1]; // 1999

const month=matchObj[2]; //12

const day=matchObj[3]; // 31

上面代码中,“具名组匹配”在圆括号内部,模式的头部添加“问号 + 尖括号 + 组名”(?<year>),然后就可以在exec方法返回结果的groups属性上引用该组名。同时,数字序号(matchObj[1])依然有效。

引用

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

const RE_TWICE=/^(?<word>[a-z]+)!\k<word>$/;RE_TWICE.test('abc!abc') // trueRE_TWICE.test('abc!ab') // false

相关文章

  • javaScript文章目录

    javaScript标准参考教程 ES6入门

  • 《ES6标准入门——阮一峰》总结

    这是笔者读完阮一峰的《ES6标准入门》的总结,可称为《ES6标准入门的入门》,总结的知识点都比较通俗易懂,可为想大...

  • React Native 学习指引

    ES6 ES6 推荐阮一峰的[《ES 6 标准入门》]在线阅读。 React react.js入门教程(gitbo...

  • 技术资源

    javascript MDN w3c jquery w3c es6 es6标准入门 vue jsliang —— ...

  • 1、let和const命令

    阮一峰《ES6 标准入门》 笔记阮一峰 博客案例 在ES6中,我们通常实用 let 表示变量,const 表示常量...

  • ES6标准入门 读书笔记

    《ES6标准入门》是一本开源的 JavaScript 语言教程,全面介绍 ECMAScript 6 新引入的语法特...

  • babel入门 转

    Babel 入门教程 (说明:本文选自我的新书《ES6 标准入门(第二版)》的第一章《ECMAScript 6简介...

  • ES6简介

    参考ECMAScript6入门ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准...

  • 资料参考

    sass用法指南--阮一峰ES6入门Flex布局教程Javascript标准参考教程css网格布局

  • 004_ES6知识点总结(01)let及const声明

    ES6知识点整理 近期准备面试,把ES6的内容详细复习一遍整理来源素材:阮一峰《ES6标准入门》(第三版);htt...

网友评论

      本文标题:ES6标准入门 读书笔记

      本文链接:https://www.haomeiwen.com/subject/aqleectx.html