es6解构赋值(JS 的解构赋值)

本文目录
JS 的解构赋值
JS的解构赋值
1,JS的解构赋值是ES6新增的一种赋值方法,一般分为对象解构与数组解构两种形式;
对象解构赋值:
let obj = {
x: ’Json’,
y: 25,
}
let {x, y} = person;
console.log(x,y); // Json 25
var o = {p: 42, q: true};
var {p: foo, q: bar} = o; // 将o的p值赋给变量foo,将o的q值赋值给变量bar。
var {p: foo, q: bar} = o;等价于({p: foo, q: bar} = o);
数组结构赋值:
let ;
console.log(x,y); // a b
注意点:
1,解构赋值等号两边结构需要一样,所有变量才能正常解析赋值;
2,若左边结构少于右边,左边按结构赋值,右边多余不管;
3,若右边结构少于左边,左边结构将不赋值,为undefined,若左边给默认值将为默认值,如 let {x,y = 3} = {1}; x = 1, y = 3;
4,凡是有默认值,若正常赋值,默认值会被覆盖;
4,不能将数组解构赋值给对象的解构赋值;如:const {x, y} = ;x,y值将为undefined.
ES6方向:对象扩展
定义对象的属性,有两种方式
在ES6中拓展了ES5的缺陷,在使用字面量定义对象时,ES5只允许第一种方式去定义,比如:
而ES6中拓展了它的定义方式,允许第二种方式去字面量的方式去定义对象
其次还允许这种方式去定义对象内部的方法名
但是需要注意的是,这种写法不支持简写,比如:
第二种写法一定不要去简写,会报错!!!
ES5比较两个值是否相等,只有两个运算符:相等运算符(==)以及严格相等运算符(===)。它们都有自身的缺点,前者会自动转换数据类型,比如:123 == ’123’ 相等运算符会自动处理为true值,隐形的进行了数据类型的转换,而后者严格相等运算符的NaN不等于自身,以及+0等于-0。
ES6提出同值相等算法,Object.is()就是部署这个算法的新方法,它用来比较两个值是否严格相等,类似于严格相等运算符(===)的提升。
使用示例
如果在合并对象的时候属性名有重复的,那么后面的就会去覆盖前面的
用于循环json和对象
遍历json的属性
遍历json的属性值
遍历键值对
由于解构需要等号两边匹配一致,因此,左边是对象,而右边不是一个对象,那么就会出现报错。
注意:解构赋值的拷贝是浅拷贝,即如果一个键的值是复合类型的值(数组、对象或是函数),那么解构赋值拷贝的是这个值的引用,而不是这个值的副本。比如:
指向的是同一个引用对象
扩展运算符可以拷贝对象用于取出参数对象的所有可遍历的属性,拷贝到当前对象之中。
es6 解构赋值“.“三个点是什么意思
表示将一个对象里的键插入到另一个对象里。
举例:
var obj= {
name: ’sigma’
};
var newObj = {
...obj,
age: ’18’
};
等价于 jQuery的 $.extend():
var newObj = $.extend({}, obj);
ES6 数组解构赋值 默认赋值
nodejs的forEach不支持break
上面是一个解构赋值,你可以通过它将多个对象属性分配给一个变量。这能让他们在文件作用域被引用。以上是可选择的,但如果你不用它,那么每次你使用
一个组件在你代码中时,你就必须使用完全限定的名称

更多文章:
中文自动翻译成英语的输入法(有没有一种输入法能将打出来的中文自动变成英文)
2026年11月7日 02:10
equals to(为什么有些英文句子要用的是“equals to that of” 这个that和of之间还可以加名词吗)
2026年11月7日 01:50
default values(电脑开机后出现all settings was reset to default values.)
2026年11月7日 01:20
structured reviewing翻译(软件测试的英文翻译)
2026年11月7日 00:50
dos命令清屏(Windows DOS内部命令详解04——del、ren、cls、ver、date、time)
2026年11月6日 15:40




