- 使用const或者let定义的变量需要先声明,不允许重复声明 。
const // 定义静态变量 --> 定义之后不允许修改
let // 定义局部变量 只有在局部作用域中才有作用,如{}、function、for循环(比较特殊)、while循环
// let const 好处:防止变量污染
var 定义变量,变量提升。
用const定义对象和数组,可以随意添加,不会报错。
ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。
- 闭包的作用,保护内部变量。
- 字符串相关方法
let str = "I love JS";
str.includes("I"); // --> true 字符串中是否包含该字符。
str.startsWith("I") // --> true 字符串是否以I开头
str.endsWith("JS")// --> true 字符串是否以JS结尾
str.repeat(3) // 字符串重复三次 返回新字符串
str.padStart(10,'0'); // 字符串的长度最少为两位,不够的话在字符串的前面加0 返回新字符串
- 解构
ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
let [a,b,c]=[1,2,3];
a // 1
b // 2
c // 3
let [a,...b]=[1,2,[12,34]];
// ...b是前面声明过的变量之后、所有变量的集合,在之后声明的变量会报错,(同一个数组内)
// 报错如下
let [a,...b,c] = [1,2,3,4,5];
VM253:1 Uncaught SyntaxError: Rest element must be last element
// 如果两边不相等,左边的会被赋值undefined,如果有...都会赋给...后面的变量
let [x, , y