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
上面是一个解构赋值,你可以通过它将多个对象属性分配给一个变量。这能让他们在文件作用域被引用。以上是可选择的,但如果你不用它,那么每次你使用
一个组件在你代码中时,你就必须使用完全限定的名称

更多文章:
timestamp without time zone(Postgresql中to_date()函数使用问题)
2026年9月7日 09:40
下载mysql的步骤(win10安装mysql的步骤和方法)
2026年9月7日 04:10
checked in(check in和check out的区别)
2026年9月7日 01:20
java经典上机编程题(java上机题 请问这道题应该怎么写)
2026年9月7日 01:10
影视剧中有哪些剧情颠覆了你的三观?金庸的武侠小说《白马啸西风》为什么没有被拍成电影或者电视剧
2026年9月7日 00:30
mysql varchar和char的区别(mysql中char、varchar、nvarchar区别)
2026年9月7日 00:10
linux命令的选项和参数(linux为什么要有参数和选项)
2026年9月6日 20:20




