一:相关背景
ES6未出现之前,js一直被各个语言诟病,因为作用域问题让开发者困扰。直到ES6的出现,让js语言上了一个全新台阶,ES6将弱类型语言提升到强弱类型语言。
二:相关语法
1.定义变量 let const
let是声明变量的关键字,特点如下:
a.不允许重复声明
b.没有预解析阶段,不会被提升
c.自带独立的作用域,在大括号中声明的变量只能在大括号中使用
可以解决循环中定时器里使用变量的异步问题(类似闭包)
const是声明常量的,特点:
比let多一点,不允许重新赋值除了给对象新增属性,其他和let一样
2.箭头函数
let fn=()=>{ };
用来简写函数的,当然不止这一个偷懒方法,当只有一个形参时连小括号都可以省略,如果代码块中只有一行代码时可以省略大括号,并返回这行代码
箭头函数中没有arguments
使用箭头函数时,this代表箭头函数外面的this,当你要使用外面的this时,建议用箭头函数,特别是在面向对象编程时,真香
3.模板字符串
es6新增了定义字符串的方式,使用反引号
a.可以换行书写,保持字符串中的换行和空格(咋写咋输出)
b.还可以识别变量,使用${ };
相比于单双引号字符串,可以说反引号是多么的简单粗暴,一个字nb;
4.解构赋值
a.解构对象
之前的从对象中获取内容
使用结构方式获取内容
表示从Str对象中获取name属性,并赋值给声明的变量name
值得注意的是:
Str必须是一个对象,且这个对象中有name这个属性
解构对象还可以一次性结构多个对象和多级对象
还可以将变量名换成自己喜欢的,比如把age换成height
b.解构数组
此时one代表数组中下标为0的值,即1,解构数组不像解构对象那样可以选择性解构,解构数组都是从数组下标0开始按顺序解构的
多维数组的解构
我想肯定有人会觉得有点鸡肋,巧了,我也是
不过还是有点用处的,就是交换两个变量的值
5.展开运算符
使用 …变量
6.字符串语法
a: startWith( ) 是否以谁开头 ,返回布尔值
b: endWith( ) 是否以谁结尾 , 返回布尔值
c: includes( ) 判断一个字符串或数组是否包含指定的值