美文网首页
ES6 基础新特性

ES6 基础新特性

作者: 弱冠而不立 | 来源:发表于2020-09-15 20:16 被阅读0次

关于 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

关于解构赋值的用途:

  1. 交换变量的值:
let x = 2; let y = 3;
[x, y] = [y, x];
// x == 3    y == 2
  1. 提取 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

相关文章

网友评论

      本文标题:ES6 基础新特性

      本文链接:https://www.haomeiwen.com/subject/ondnsktx.html