<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>解构</title>
</head>
<body>
<!-- <script type="text/javascript">
//数组解构 将数组中的值取出来并一一赋值给不同的变量
// var arr = [3,4,5];
// // var a = arr[0];
// // var b = arr[1];
// // var c = arr[2];
// //ES6
// var [a, b, c] = arr;
// // var [a, b, c] = [3,4,5];
// console.log(a, b, c);
//注意:可以跳过部分值,但是解构的变量 需要使用,占位
var arr = [3,4,5,6,7];
var [a,b,c,,e] = arr;
console.log(a, b, c, e);
</script>
<script type="text/javascript">
//对象解构 将对象中的属性值取出,并一一赋值给和属性名相同的变量
var obj = {
"age":30,
"sex":"男",
"say":function(){
return "hello";
}
};
// var age = obj.age;
// var sex = obj.sex;
// ES6
var {age,sex,say} = obj;
console.log(age, sex, say);
console.log( say() );
//跳过某些值 直接不写解构变量
var {age,say} = obj;
console.log(age, say);
console.log( say() );
//变量名 必须和对象的成员名对应
// var {aa,sex} = obj;
// console.log(aa, sex);
</script> -->
<script type="text/javascript">
// function f1(m,n,x){
// console.log(m, n, x)
// }
// f1(3,4,5);
// var arr = [5,6,7];
// f1(...arr);
//
//函数参数自动解构
//预期效果:
function f2(x){
// console.log(x);
//解构
var [m,n,i] = x;
console.log(m,n,i);
}
var arr = [5,6,7];
f2(arr);
//让函数的形参在接收参数时,自动进行解构
function f3([m,n,i]){
// console.log(x);
console.log(m,n,i);
}
var arr = [5,6,7];
f3(arr);
</script>
</body>
</html>