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构造函数