var和let的作用域,和是否可以重复声明与提升。
var的作用域分为全局和局部,区别在于是否声明在函数内。var声明的变量可以重复声明,且可提升,这里指的是再次声明并赋值。
let是块级作用域,仅仅在代码块中有效。let声明的变量不可重复声明与提升。const的值声明后在不允许再次改变。如下图所示:

let和var对比
Es6新增:
count声明一个只读常量,声明之后必须赋值且不可修改(该作用域内)。
字符串模板的改变:
可直接将变量放入${ }中进行字符串拼接。可以不使用+拼接字符串与变量。arr.repeat(调用次数)方法可重复调用选中数组。arr.include(字符串)判断是否包含。startsWith()和endsWith()用于判断数组的头和尾。
超引用(...arr)可直接进行数组的克隆且直接调用数组方法,极大可能减轻了代码。
var arr2=[...arr];

[...arr]
还可通过 克隆数组=Array.from (被克隆数组)。

Array.from ()
通过Set对象去重复

Set()
多行字符串可以使用一对` `包裹,不需要使用引号和+进行拼接。