博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ES6解构赋值
阅读量:5960 次
发布时间:2019-06-19

本文共 3840 字,大约阅读时间需要 12 分钟。

1、数组的解构赋值

// 数组的解构赋值// const arr = [1, 2, 3, 4];// let [a, b, c, d] = arr;// ------------------------------------------// 更复杂的匹配规则// const arr = ['a', 'b', ['c', 'd', ['e', 'f', 'g']]];// const [ , b] = arr;// const [ , , g] = ['e', 'f', 'g']// const [ , , [ , , g]] = ['c', 'd', ['e', 'f', 'g']];// const [ , , [ , , [ , , g]]] = arr;// ------------------------------------------// 扩展运算符  ...// const arr1 = [1, 2, 3];// const arr2 = ['a', 'b'];// const arr3 = ['zz', 1];// const arr4 = [...arr1, ...arr2, ...arr3];// const arr = [1, 2, 3, 4, 5, 6];// const [a, b, ...c] = arr;// ------------------------------------------// 默认值// const arr = [1, null, undefined];// const [a, b = 2, c, d = 'aaa'] = arr;// ------------------------------------------// 交换变量// let a = 20;// let b = 10;// let temp;// temp = a;// a = b;// b = temp;// [a, b] = [b, a];// ------------------------------------------// 接收多个 函数返回值// function getUserInfo(id) {//   // .. ajax//   return [//     true,//     {//       name: '小明',//       gender: '女',//       id: id//     },//     '请求成功'//   ];// };// const [status, data, msg] = getUserInfo(123);

2、对象的解构赋值

// 对象的解构赋值// const obj = {// 	saber: '阿尔托利亚',// 	archer: '卫宫'// };// const { saber, archer1 } = obj;// ------------------------------------------// 稍微复杂的解构条件// const player = {// 	nickname: '感情的戏∫我没演技∆',// 	master: '东海龙王',// 	skill: [{// 		skillName: '龙吟',// 		mp: '100',// 		time: 6000// 	},{// 		skillName: '龙卷雨击',// 		mp: '400',// 		time: 3000// 	},{// 		skillName: '龙腾',// 		mp: '900',// 		time: 60000// 	}]// };// const { nickname } = player;// const { master } = player;// const { skill: [ skill1, { skillName }, { skillName: sklName } ] } = player;// const { skill } = player;// const [ skill1 ] = skill;// ------------------------------------------// 结合扩展运算符// const obj = {// 	saber: '阿尔托利亚',// 	archer: '卫宫',// 	lancer: '瑟坦达'// };// const { saber, ...oth } = obj;// const obj1 = {// 	archer: '卫宫',// 	lancer: '瑟坦达'// }// const obj = {// 	saber: '阿尔托利亚',// 	...obj1,// };// ------------------------------------------// 如何对已经申明了的变量进行对象的解构赋值// let age;// const obj = {// 	name: '小明',// 	age: 22// };// ({ age } = obj);// ------------------------------------------// 默认值// let girlfriend = {// 	name: '小红',// 	age: undefined,// };// let { name, age = 24, hobby = ['学习'] } = girlfriend;// ------------------------------------------// ------------------------------------------// 提取对象属性// const { name, hobby: [ hobby1 ], hobby } = {// 	name: '小红',// 	hobby: ['学习']// };// ------------------------------------------// 使用对象传入乱序的函数参数// function AJAX({// 	url,// 	data,// 	type = 'get'// }) {// 	// var type = option.type || 'get';// 	// console.log(option);// 	console.log(type);// };// AJAX({// 	data: {// 		a: 1// 	},// 	url: '/getinfo',// });// ------------------------------------------// 获取多个 函数返回值// function getUserInfo(uid) {// 	// ...ajax// 	return {// 		status: true,// 		data: {// 			name: '小红'// 		},// 		msg: '请求成功'// 	};// };// const { status, data, msg: message } = getUserInfo(123);// ------------------------------------------

3、字符串的解构赋值

// 字符串的结构赋值const str = 'I am the bone of my sword'; // 我是剑骨头// const [ a, b ,c, ...oth ] = str;// const [ ...spStr1 ] = str;// const spStr2 = str.split('');// const spStr3 = [ ...str ];// ------------------------------------------// 提取属性// const { length, split } = str;

 

4、数值与布尔值的解构赋值

// 数值与布尔值的解构赋值const { valueOf: vo } = 1;const { toString: ts } = false;

 

5、函数参数的解构赋值

// 函数参数的解构赋值// function swap([x, y]) {// 	return [y, x];// };// let arr = [1, 2];// arr = swap(arr);function Computer({	cpu,	memory,	software = ['ie6'],	OS = 'windows 3.5'}) {	console.log(cpu);	console.log(memory);	console.log(software);	console.log(OS);};new Computer({	memory: '128G',	cpu: '80286',	OS: 'windows 10'});

  

转载于:https://www.cnblogs.com/cristina-guan/p/10493174.html

你可能感兴趣的文章
当你凝视黑洞的时候,它已经被玩坏了
查看>>
fluent python 读书笔记 2--Python的序列类型2
查看>>
依赖冲突时的解决方法
查看>>
学习笔记5
查看>>
富人为什么越富,穷人为什么越穷
查看>>
电子商务java b2b b2c o2o平台
查看>>
(五)java spring cloud版b2b2c社交电商spring cloud分布式微服务-路由网关(zuul)
查看>>
零基础学小程序007---小程序获取用户openid
查看>>
两年摸爬滚打 Spring Boot,总结了这 16 条最佳实践
查看>>
Laravel 5 5 使用 Jwt Auth 实现 API 用户认证以及无痛刷新访问令牌
查看>>
专注人工智能未来 十年后百度可能完全不一样?
查看>>
阿里开发者招聘节 | 面试题14:如何实现两金额数据相加(最多小数点两位)...
查看>>
企业分布式微服务云SpringCloud SpringBoot mybatis(八)消息总线(Spring Cloud Bus)
查看>>
logback pattern
查看>>
推荐的JVM参数
查看>>
PHP类UTF8编码内的繁简转换-繁体-简体
查看>>
晒晒工作中的静态文件大小控制制度
查看>>
当存储已成白菜
查看>>
Starting httpd: (13)Permission denied: make_sock: could not bind to address 0.0.0.0:9000
查看>>
vim编辑C++代码寻找标准库中结构的的定义
查看>>