iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >ES6中解构赋值实现变量批量赋值解放双手
  • 836
分享到

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

2024-04-02 19:04:59 836人浏览 薄情痞子
摘要

目录引言一、数组的解构赋值解构失败不完全解构默认值二、对象的解构赋值三、字符串的解构赋值结束语引言 变量的解构赋值, 听起来很复杂, 简单点说可以理解成批量操作变量赋值,先有个印象,

引言

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

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

一、数组的解构赋值

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

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变量解构批量赋值的资料请关注编程网其它相关文章!

--结束END--

本文标题: ES6中解构赋值实现变量批量赋值解放双手

本文链接: https://www.lsjlt.com/news/147412.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • ES6中解构赋值实现变量批量赋值解放双手
    目录引言一、数组的解构赋值解构失败不完全解构默认值二、对象的解构赋值三、字符串的解构赋值结束语引言 变量的解构赋值, 听起来很复杂, 简单点说可以理解成批量操作变量赋值,先有个印象,...
    99+
    2022-11-13
  • 详解JS ES6变量的解构赋值
    目录1.什么是解构?2.数组解构3.数组模式和赋值模式统一4.解构的默认值5.对象的解构赋值6.函数参数7.字符串解构8.数值和布尔值的解构赋值9.解构赋值的应用1.交换变量的值2....
    99+
    2022-11-12
  • ES6中变量解构赋值的示例分析
    这篇文章主要介绍了ES6中变量解构赋值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。变量的解构赋值数组的解构const ...
    99+
    2022-10-19
  • ES6如何实现解构赋值
    小编给大家分享一下ES6如何实现解构赋值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ES6常见小优化-解构赋值const form&nbs...
    99+
    2023-06-17
  • ECMAScript6变量中解构赋值的示例分析
    这篇文章主要介绍了ECMAScript6变量中解构赋值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数组的解构赋值ES6允许按照一...
    99+
    2022-10-19
  • ES6变量赋值和基本数据类型详解
    目录let和constlet和const不存在变量提升暂时性死区(temporal dead zone,简称TDZ)不允许重复声明块级作用域与函数声明const变量解构解构必须左右解...
    99+
    2022-11-13
  • ES6如何实现解构赋值功能
    这篇文章给大家分享的是有关ES6如何实现解构赋值功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:(1)交换变量的值[x, y] = [y...
    99+
    2022-10-19
  • ES6怎么实现解构赋值功能
    本文小编为大家详细介绍“ES6怎么实现解构赋值功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“ES6怎么实现解构赋值功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。(1)交换变量的值[x, y]&...
    99+
    2023-06-17
  • 详解jQuery中的变量赋值操作
    jQuery是一个优秀的JavaScript库,它可以使JavaScript的开发过程更加高效、优化和快速。在jQuery中,变量赋值是非常重要的一部分。本文将介绍jQuery中的变量赋值操作。一、基本赋值操作在jQuery中,赋值操作与J...
    99+
    2023-05-14
  • 深入理解Python中变量赋值的问题
    前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的。 Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化,下面...
    99+
    2022-06-04
    赋值 变量 Python
  • JavaScript中怎么实现解构赋值
    JavaScript中怎么实现解构赋值,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. ES6的新特性  &nbs...
    99+
    2022-10-19
  • 关于Python中对变量赋值过程的理解
    目录Python中变量赋值过程理解总结:Python中变量赋值过程理解 在Python中对变量赋值过程的理解,有助于学习者对Python的变量和所指向的对象之间的指向关系深刻理解,避...
    99+
    2023-05-19
    Python变量赋值过程 Python变量赋值
  • 对变量赋值的理解--Pyton中让两个值互换的实现方法
    #Pyton中让两个值互换的实现方法 #方法一:可以理解为相当于是同时赋值 a = 5 b = 4 a,b = b,a print(a,b) #方法二:可以理解为拿箱子过程 c = 10 d = ...
    99+
    2022-06-04
    赋值 变量 两个
  • 深入解析Python中的变量和赋值运算符
    Python 变量类型 变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同的数据类型,...
    99+
    2022-06-04
    赋值 变量 运算符
  • python模块中判断全局变量的赋值的实例讲解
    1、在模块中,我们需要判断__name__是否被赋值为“__main__”。 python fibo.py <arguments> 2、在脚本执行的情况下,模块的_...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作