ES6变量的解构赋值(二)对象的解构赋值

前面我们知道,数组的结构赋值需要按顺序进行赋值,

let [a,,c] = [1,2,3]
console.log(a);//1
console.log(c);//3

let [a,b] = [1];console.log(a);//1console.log(b);//undefined

而对象的解构赋值则是通过对象属性进行赋值,不需要按照顺序进行,而无法匹配的则为undefined

let {a,b,c}={b:1,a:2};
console.log(a);//2
console.log(b);//1
console.log(c);//undefined

实际上,对象的解构赋值的完整写法为:

let {a:a,b:b,c:c}={b:1,a:2};
console.log(a);//2
console.log(b);//1
console.log(c);//undefined

例如上边的例子中,等式左边属性名称与变量名相同,因此可以直接写成let {a,b,c}={b:1,a:2};

同理如果属性名与变量名不同,则不能简写

let {a:b} = {a:1};
console.log(b);//1
//注意:b为变量名,a为属性名,不能够直接输出a

对象的解构赋值也可以设置变量默认值,默认值的生效条件为:对象属性的值严格("===")等于undefined

var {x = 3} = {};//x==>3

var {x = 3} = {x: undefined};//x==>3

var {x = 3} = {x: null};//x==>null

var {x = 3} = {x:0};//x==>0
var {x: y = 3} = {};//y==>3

数组本身也是特殊的对象,可以进行对象的解构赋值

var arr=[1,2,3];
 let {0:first,[arr.length-1]:last}=arr;
console.log(first);//1
console.log(last);//3

对象解构赋值的应用:

1.可以很方便获取到现有对象的属性或方法

//console对象中log属性拥有打印功能,
//console对象赋值给创建的对象中的log,因此可以直接log()实现打印功能
const { log } = console;
log(‘hello‘) // hello   等同于console.log();

原文地址:https://www.cnblogs.com/kongbaifeiye/p/12019769.html

时间: 2024-08-08 01:35:46

ES6变量的解构赋值(二)对象的解构赋值的相关文章

ES6入门之变量的解构赋值(二)

前言 在上一章 ES6入门之let和const命令中我们对ES6的相关语法已经有了初步了解,上一章中我们主要学习了三大部分的内容,let命令的使用,块级作用域,const命令的使用,那么从本篇博客将进一步深入了解ES6中的相关语法,毕竟未来ES6是主流. 本章目标 学会数组的解构赋值 学会对象的解构赋值 学会字符串的解构赋值 学会数值和布尔值的解构赋值 学会函数参数的解构赋值 学会解构赋值的用途 本人对解构赋值的理解:模式匹配,匹配成功获取值,匹配不成功则为undefined,好比开心消消乐一样

ES6学习及总结(二):对象的解构

ES6学习及总结(二):对象的解构 一:数组的解构 1:ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring).本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值. let [foo, [[bar], baz]] = [1, [[2], 3]]; foo // 1 bar // 2 baz // 3 let [ , , third] = ["foo", "bar", "

es6 变量的解构赋值

一.数组的解构赋值 数组解构赋值,索引很重要,即顺序很重要 1.解构[1,2,3] //把1,2,3分别赋值给a,b,c var [a,b,c]=[1,2,3]; console.log(a+' | '+b+' | '+c);//1 | 2 | 3 2.更复杂,更强大的赋值,解构[1,[2,3]] //把1,2,3分别赋值给a,b,c var [a,[b,c]]=[1,[2,3]]; console.log(a+' | '+b+' | '+c);//1 | 2 | 3 3.跳着赋值 //把1赋值

ES6 变量与解构(二)

一.变量的声明与使用 [测试示例需要在node环境中测试,浏览器环境下并不完全兼容ES6代码]ES6中可以使用 {} 来包含任意一段代码,被 {} 包裹的内容称为一个代码块(局部作用域) let关键字 [声明变量]特性:1.块级作用域    [局部作用于声明的代码块中]2.变量声明不会提升    [变量未声明前无法使用该变量]3.暂时性死区    [该变量声明前面的区域]4.不能重复声明    [同一代码块中不能重复声明同一变量] const关键字    [声明常量(一般用大写字母表示常量)]特

es6变量解构赋值的用途

这里是我觉得es6解构赋值,在平时我们写js的时候非常有用,而且经常用到的地方,能简化我们的代码,让写代码简介优雅易读; 用途 1.交换变量的值,太方便了这逼,写法不仅简介而且一看就明白 let [x,y]=[1,2]; [x,y]=[y,x]; console.log(x);//输出2 console.log(y);//输出1 2.从函数返回多个值 函数只能返回一个值,如果要返回多个值,只能将它们放在数组或者对象里面返回.有了解构赋值,取出这些值那是非常的方便,最关键是易读 function

ES6变量的解构赋值

// -------------------------------------------------------------------/** * 基本概念: * 本质上就是一种匹配模式,只要等号两边的模式相同,那么左边的变量就可以 * 被赋予对应的值. * 结构赋值主要分为: * 1 数组的解构赋值 * 2 对象的结构赋值 * 3 基本类型的解构赋值 */// let a = 1;// let b = 2;// let c = 3; // let [a, b, c] = [1, 2, 3]

Es6 -- 对象的解构赋值

解构不仅可以用于数组,还可以用于对象. var {foo, bar} = {foo: "aaa", bar: "bbb"}; console.log(foo); //aaa console.log(bar); //bbb 对象的解构与数组有一个重要的不同.数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值. var {bar, foo} = {foo: "aaa", bar: "

对象 与 解构赋值

对象 定义:在javascript中,对象就是拥有属性和方法的无需数据集合 创建对象: 1.object构造函数 var person=new object(); 2.字面量方式 var person = {}; 对象的属性: 对象属性的分类 1.数据属性:一般用于储存数据值 2.访问器属性:不包含数据值,多用于get/set操作 定义对象的数据属性 通过点运算符.来操作一个对象的属性 person.name="zhangsan"; 通过方括号[]操作一个对象的属性 person[&q

对象的解构赋值

let { foo, bar } = { foo: "aaa", bar: "bbb" }; foo // "aaa" bar // "bbb" 对象的解构与数组有一个重要的不同.数组的元素是按次序排列的,变量的取值由它的位置决定:而对象的属性没有次序,变量必须与属性同名,才能取到正确的值. 如果变量名与属性名不一致,必须写成下面这样. let { foo: baz } = { foo: 'aaa', bar: 'bbb' }