ES6标准入门 阅读笔记

138 阅读2分钟

charptert1 let 和 const 命令 

let声明对象为块级作用域,且声明处可位于使用处之后:let变量覆盖外层定义,外层定义不可见,但变量不可获取直至声明处(var可获取undefined)。

{
ReferenceError
let/const
undefined
}

function f(块级作用域)

不允许重复声明

for循环(父作用域){子作用域}

function (同级作用域){同级作用域}

避免在块级作用域内声明函数,推荐函数表达式

const 地址固定

this变量

全局环境中,this会返回顶层对象。但是,Node 模块和 ES6 模块中,this返回的是当前模块。

函数里面的this,如果函数不是作为对象的方法运行,而是单纯作为函数运行,this会指向顶层对象。但是,严格模式下,这时this会返回undefined

charpter2 变量的解构赋值

解构赋值

模式匹配,可嵌套,不成功为undefined

前提:具备 Iterator 接口,或转为对象后具备

可指定默认值,表达式惰性求值,默认值生效的条件是,对象的属性值严格等于undefined

对象解构:变量同名,可用于传递方法,变量名与属性名不一致 model:real

大括号写在行首,JavaScript 将其解释为代码块,可能报错(重名),解构不引入块级?

let x;
{x} = {x: 1};
// SyntaxError: syntax error

数组本质是特殊的对象,因此可以对数组进行对象属性的解构

字符串也可以解构赋值,类似数组的对象

右侧number、boolean解构赋值时,会先转为对象

传参 = 赋值解构

用处:

交换

返回值

加载模块指定导入的方法

charpter3 字符串

${模板字符串} 反引号(`)标识

模板字符串可嵌套

可以紧跟在一个函数名后面,该函数将被调用来处理这个模板字符串。这被称为“标签模板”功能

标签模板的另一个应用,就是多语言转换(国际化处理)

方法

boolean **includes/ ****startsWith/ **endsWith('string', start)

repeat

**trim trimStart **

trimEnd

charpter4 正则

RegExp构造函数