js中的解构赋值:可以同时对一组变量进行赋值

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>js中的解构赋值:可以同时对一组变量进行赋值</title>

</head>

<body>

<script type="text/javascript">

// 先看下传统的赋值:把一个数组的元素分别赋值给几个变量

var array = ['hello', 'JavaScript', 'ES6'];

var x = array[0];

var y = array[1];

var z = array[2];

// es6之后可以使用解构赋值,直接对多个变量同时赋值

// var [a, b, c] = ['hello', 'JavaScript', 'ES6'];

var [a, b, c] = array;

//  注意,左边不是数组

console.log(a, b, c); // hello JavaScript ES6

// 如果要从对象中取出若干属性,也可以使用解构赋值,便于快速获取对象的指定属性

var person = {

name: '小明',

age: 20,

gender: 'male',

passport: 'G-12345678',

school: 'No.4 middle school'

};

var {

name,

age,

passport

} = person;

console.log(name, age, passport);

//使用解构赋值的时候,若对应的属性不存在,变量将被赋值为undefined

// 另外对于

var myName = {

name: "hehe",

gender: 1,

passport: "123456",

}

var {

name,

passport: id

} = myName; // 注意这里,passport不是变量,而是为了让id获得passport的属性

console.log(name, id);

// 另外解构赋值还可以使用默认值,这样就避免了不存在的属性返回undefined的问题

var newApp = {

name: "hehe",

gender: 1,

passport: "123456",

}

var {

name,

age = 23

} = newApp; // 注意,这里对age给了一个默认值

console.log(name, age);

// 注意是会报错的,下面这种写法

// {x,y} = {name:23,x:123,y:456};// 因为js会{开头的当做块处理,可以添加一个()

({x,y} = {name:23,x:123,y:456});

//解构赋值的使用场景: 简化代码

// 1.两个值进行交换

var [x,y] = [11,22];

console.log(x,y);

[x,y] = [y,x];

console.log(x,y);

</script>

</body>

</html>

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

推荐阅读更多精彩内容