我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ES6中解构赋值实现变量批量赋值解放双手

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ES6中解构赋值实现变量批量赋值解放双手

引言

变量的解构赋值, 听起来很复杂, 简单点说可以理解成批量操作变量赋值,先有个印象, 下面慢慢来看

变量的解构赋值一共分为以下几种:数组的解构赋值 、对象的解构赋值 、字符串的解构赋值 、

一、数组的解构赋值

先来看一下我们平时对很多个变量赋值是如何操作的:

let a = 1
let b = 2
let c = 3
let d = 4

那么我们看一下如何批量命名这些变量:

let [a, b, c, d] = [1, 2, 3, 4]
a  // 1
b  // 2
c  // 3
d  // 4

这就是一个简单的数组的变量解构赋值,即等号左边的变量与等号右边的相同位置的值一一对应进行赋值。

解构失败

有几种情况会解构失败:

等号左边的变量与等号右边没有对应上,则会被解析成undefined

let [a, b, c] = [1, 2]
a  // 1
b  // 2
c  // undefined

上述代码中的 c , 与之匹配的是undefined,所以最后为undefined

等号右边是一个不可遍历的结构

let [a, b] = 1

这很明显就会直接报错, 解构失败, 因为等号两边都无法进行匹配

不完全解构

这个简单,直接看代码:

let [a, b] = [1, 2, 3]
a  // 1
b  // 2

简单点说就是等号右边有很多值,但等号左边只有两个变量需要赋值, 这种叫做不完全解构, 不会报错。

默认值

在解构时,是允许给予一个默认值的, 如果该变量没有解构成功, 则会将默认值赋值给它, 例如:

let [a, b=2] = [1]
a  // 1
b  // 2

如果b没有赋值一个默认值 2 , 则 b 应为 undefined , 现在给了b 一个默认值 2 , 则在b 解构失败时,将默认值2赋值了给它。

补充一下: 在给予变量默认值时, 只有当没有对应的值与之匹配时或者与之匹配的是 undefined 时, 才会将默认值赋值给自己, 但是如果与之匹配的是 null , 则默认值不起作用, 最后会将 null 赋值给它, 看例子:

let [a=1, b=2, c=3] = [undefined, null]
a  // 1
b  // null
c  // 3

二、对象的解构赋值

对象的解构赋值可以很方便的取出对象里面的值, 先来看一下我们平时取出对象中的值,并赋值给一个变量是如何操作的吧:

let obj = {name: 'jack', age: 18, gender: '男'}
let name = obj.name
let age = obj.age
let gender = obj.gender

有没有觉得很麻烦?因为要命名一个个变量,并对齐进行赋值,我们来看一下对象的解构赋值是如何帮我们简化操作的:

let {name, gender, age} = {name: 'jack', age: 18, gender: '男'}

就只需要一行代码就可以将对象中的三个值都取出来并赋值给三个变量。但是,我们在使用对象的解构赋值的时候必须要注意,等号左边的顺序是随意的, 系统会根据你的变量名, 优先去对象中寻找与你对象名相同的键, 将它的值赋值给这个变量。

这么一说, 我们的变量名就必须要跟对象中的健名一样了吗?不是的, 其实我们可以自己再起一个名字,例如:

let {n: name, g: gender, a: age} = {name: 'jack', age: 18, gender: '男'}

这样就可以做到自己给变量起名字了, 并且这样做有一个好处, 就是可以避免与前面的代码中的变量名重合了。

当然,对象的解构赋值也是可以给一个默认值的, 用法跟数组的解构赋值一样,这里就不多做解释了, 感兴趣的可以尝试一下。

三、字符串的解构赋值

这个也非常简单,直接看例子吧:

let [a, b, c, d] = 'word'
a // "w"
b // "o"
c // "r"
d // "d"

其实字符串的解构,就相当于遍历这个字符串,然后放到一个数组中, 赋值给等号左边的变量

结束语

好了, 关于变量解构赋值的知识就将这么多,其实还有一些相关知识,例如数值和布尔值的解构赋值、函数参数的解构赋值等, 但我觉得都不常用,所以就没给大家细讲,如果感兴趣可以去查阅ES6的书。

以上就是ES6中解构赋值实现变量批量赋值解放双手的详细内容,更多关于ES6变量解构批量赋值的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ES6中解构赋值实现变量批量赋值解放双手

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ES6如何实现解构赋值

小编给大家分享一下ES6如何实现解构赋值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ES6常见小优化-解构赋值const form = { a:1, b:2,
2023-06-17

ES6怎么实现解构赋值功能

本文小编为大家详细介绍“ES6怎么实现解构赋值功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“ES6怎么实现解构赋值功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。(1)交换变量的值[x, y] = [y,
2023-06-17

JavaScript解构赋值:重新定义变量声明和赋值的方式

JavaScript解构赋值是一种简洁高效的变量声明和赋值方式,它允许我们从数组或对象中提取特定元素并将其分配给变量。
JavaScript解构赋值:重新定义变量声明和赋值的方式
2024-02-22

详解jQuery中的变量赋值操作

jQuery是一个优秀的JavaScript库,它可以使JavaScript的开发过程更加高效、优化和快速。在jQuery中,变量赋值是非常重要的一部分。本文将介绍jQuery中的变量赋值操作。一、基本赋值操作在jQuery中,赋值操作与JavaScript中的赋值操作相似。定义一个变量并赋值可以使用“=”、“==”或“===”,例如:```javascriptvar num1
2023-05-14

深入理解Python中变量赋值的问题

前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的。 Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化,下面详细介绍了Python的变量赋值问
2022-06-04

对变量赋值的理解--Pyton中让两个值互换的实现方法

#Pyton中让两个值互换的实现方法 #方法一:可以理解为相当于是同时赋值a = 5 b = 4 a,b = b,a print(a,b)#方法二:可以理解为拿箱子过程c = 10 d = 20 e = c #定义第三个人e,将箱子 c 给
2022-06-04

关于Python中对变量赋值过程的理解

在Python中对变量赋值过程的理解,有助于学习者对Python的变量和所指向的对象之间的指向关系深刻理解,避免编程中多个变量赋值后,对变量结果的不确定,,需要的朋友可以参考下
2023-05-19

深入解析Python中的变量和赋值运算符

Python 变量类型 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。
2022-06-04

详解Python中的各种变量赋值方法:易于理解的完全指南

Python的变量赋值方法大全:简单易懂的教程,需要具体代码示例引言:在使用Python编程语言进行开发时,变量的赋值是一项必不可少的基础操作。Python提供了多种方法来给变量赋值,不同的方法有不同的用途和适用场景。本篇文章将详细介绍P
详解Python中的各种变量赋值方法:易于理解的完全指南
2024-01-20

编程热搜

目录