变量的解构赋值

基本用法

ES6允许按照一定的模式,从数组和对象中取值,对变量进行赋值,这被称为解构。
以前,变量赋值,只能是直接指定值

let a = 1;
let b = 2;
let c = 3;

ES6 允许写成下面这样。

let [a, b, c] = [1, 2, 3];

这种写法属于 模式匹配 只要等号两边的模式相同,左边的变量就会被赋予对应的

默认值

解构允许有默认值

let [a, b = '456'] = ['123'];   // a = '123', b = '456'
let [a, b = '456'] = ['123', null];   // a = '123', b = null
let [a, b = '456'] = ['123', undefined];   // a = '123', b = '456'

ES6严格按照运算符(===)的原则,判断一个位置是否有值, 当数组成员严格等于 undefined时 默认的值才会生效, 所以第二条 b = null 默认值不生效

对象的解构赋值

let { foo, bar } = { foo: 'aaa', bar: 'bbb'}; 
// foo  'aaa'   
// bar 'bbb'

对象的解构与数组的解构有一个重要的不同。数组的元素是按次序排列的,对象不是。变量必须与属性名称相同,才能取到值。

对象的解构赋值,可以很方便的将现有对象的方法,赋值到一个变量。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组的解构赋值 对象的解构赋值 字符串的解构赋值 数值和布尔值的解构赋值 函数参数的解构赋值 圆括号问题 用途 数...
    皇甫贝阅读 319评论 0 0
  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 919评论 0 0
  • 本文通过学习阮一峰的博客,外加自己的理解,整理了一下我对js变量的解构赋值的理解。 数组的解构赋值 对象的解构赋值...
    宋乐怡阅读 489评论 0 2
  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destru...
    呼呼哥阅读 435评论 0 3
  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destru...
    陈老板_阅读 362评论 0 0