关于 ES6 转 ES5 兼容低版本浏览器:
Babel 是一个宽泛使用的 ES6 转码器, 可以将 ES6 转为 ES5 的代码. 这意味着, 你可以用 ES6 的方式编写程序, 又不用担心现有的环境是否支持.
let 和 const 声明
新增
let
关键字,用来声明变量。和var
不同的是,let
声明的变量只在声明它的代码块中有效,且同一代码块(代码块指{}
之间)不能重复声明。而且let
声明的变量不存在变量提升的现象,这意味着,let
声明的变量,必须在声明之后使用。
新增
const
关键字,用来声明一个只读常量。const 声明的常量不允许重复赋值,且声明时就要赋值,否则亦会报错。
解构赋值
- 数组的解构赋值:
let [a,b,c] = [1,2,3];
等价为let a=1; let b=2; let c=3;
- 对象的解构赋值:
let { age, name } = { name:"33", age="22" }
等价为let age = 22; let name = 33;
注:对象的解构和数组解构不同在于,数组的值要对应上是根据数组下标位置,而对象是根据变量名对应对象属性名。
- 字符串的解构赋值
let [a, b] = "ok"
等价为let a = "o"; let b = "k";
这种类数组结构的数据,都有一个length
属性,故可以对length
属性进行解构赋值:
let {length:len} = "ok"
// len == 2 - 函数参数的解构赋值
function add([x, y]) {
return x+y
}
add([2,3]); //5
上述函数的参数表面看起来为数组,但在传入进函数参数时,就解构赋值给了 x, y
关于解构赋值的用途:
- 交换变量的值:
let x = 2; let y = 3;
[x, y] = [y, x];
// x == 3 y == 2
- 提取 json 数据
let jsonData = {
id: 1,
status: "OK",
data: [20, 30]
}
let { id, status, data: num} = jsonData;
console.log(id, status, num);
// 1, "OK", [20, 30]
模板字符串
模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
let something = "world";
let str = `hello ${something}` // hello world
网友评论