JavaScript 解构赋值和Object.keys...

Object.keys(obj)…

Object.keys(obj)
Object.values(obj)
Object.entries(obj)
Object和其他可迭代对象一样,由上述的方法,但是返回值是一个数组而不是可迭代项,且参数为需要进行迭代的对象,通常用来将对象转换成数组进行来进行其他操作。

解构赋值

就像python中对数组的解构赋值
在JavaScript中,我们也可以进行类似的操作

三种情形
对数组的解构赋值

let [item1,item2,,item3] =  ["Julius", "Caesar", "Consul", "of the Roman Republic"];
// 不许需要的元素可以用空位置, ,表示
// item 可以是任何内容

对map对象的操作

let [key,value] =  [["Julius", "Caesar"], ["Consul", "of the Roman Republic"]];
// key 和value 分别是一个数组
let [item1,...rest] = arr;
// 这样rest 是除了第一个 元素或者 key 的所有内容组成的数组,注意'...'
对象解构

对象结构将对象的属性作为索引取出作为新的数组
需要注意
对象结构的书写方式和其他的不同

let obj ={
name:"Steve",
gender:"male",
age:"19"};
let {name,gender,age} = obj;

这里的{}中的属性顺序不重要,只要属性名和对象的属性名对应,结果是 完全相同

除了直接用key 作为引用,我们可以使用key:name进行指定

let {name:n,gender:g} = obj;
console.log(n) // Steve
// 这样的赋值也是可以的
默认值

默认值

let [name = "defaultName"] = 
// 设置默认值,空值则为undefined

默认值只有值没有被提供时才会启用
如下面默认值采用prompt 来获得,只有没有对应的值时,才会弹出对应的输入窗口。

let {name = promt("enter ur name")} = obj;
// 如果没有name ,则弹出要求用户输入名字

嵌套解构和智能参数函数

解构中可以进行嵌套
函数的形参可以写成对象解构的形式
实参就用对象传递,传递空对象则函数使用默认值
如图所示(来自Javascript教程
在这里插入图片描述
注意事项
对对象解构时,有两种变量声明方式
1.let {p1,p2,p3} = obj;
2.
let p1,p2,p3;
( {p1,p2,p3} = obj )
注意这里要加括号(已经用黄色标出),不然会报错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值