返回顶部
首页 > 资讯 > 精选 >ES6解构赋值的原理分析
  • 414
分享到

ES6解构赋值的原理分析

2023-06-15 05:06:22 414人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关es6解构赋值的原理分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数组的解构赋值let [a, b, c] = [1,&n

这篇文章将为大家详细讲解有关es6解构赋值的原理分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

数组的解构赋值

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

同时定义多个变量,a匹配1、b匹配2、c匹配3

ES6解构赋值的原理分析

解构赋值允许指定默认值,即左边变量指定默认值,右边没有对应的值,会优先输出默认值。

let [x, y = 'b'] = ['a'] // x = 'a', y = 'b'

x匹配字符a,y默认值为字符b,若右边没有对应的,默认输出字符b。

对象的解构赋值

解构不仅可以用于数组,还可以用于对象,对象的解构与数组有一个重要的不同,数组的元素是按照次序排列的,变量的取值由它的位置决定的;而对象的属性没有次序,变量必须与属性同名才能取到正确的值。

let {    name,    age,    hobbies: [one, two]} = {    name: 'shiramashiro',    age: 21,    hobbies: ['骑行', '动漫']}

比如我取age的值,改成取abc的值,由于没有和对象中的属性名对应,无法对应赋值,所以是undefined。

解构赋值的运用

交换变量的值

正常想到交换变量的值的方式

let x = 1,    y = 2,    temp = 0temp = x // x = 1 = tempx = y // y = 2 = xy = temp // temp = 1 = yconsole.log('x => ', x)console.log('y => ', y)

利用解构赋值交换变量

let x = 1;let y = 2;[x, y] = [y, x];console.log('x => ', x)console.log('y => ', y)

这样交换变量x和y的值,写法不仅简洁,而且易读,语义非常清晰。

从函数返回多个值

函数只能返回一个值,如果要返回多个值,只能将它们放在数组或对象里返回,有了解构赋值,就变得更加方便了。

提取hobbies数组中的第二个值

function getArray() {    return {        name: 'kongsam',        age: 21,        hobbies: ['骑行', '动漫', '羽毛球']    }}console.log(getArray().name + '喜欢' + getArray().hobbies[1]) // 动漫

利用解构赋值获取hobbies数组中的第二个值

let {name, age, hobbies} = getArray()console.log(name + '喜欢' + hobbies[1]) // 动漫

遍历Map结构

对于for...of循环遍历来说,遍历出来的值是一个数组,而解构赋值对于数组是可以“模式匹配”的,这很快速地取出键-值。

ES6解构赋值的原理分析

for...of循环遍历配合解构赋值获取键-值就非常方便。

for (let [key, value] of map) {    console.log("key => ", key)    console.log("value => ", value)}

ES6解构赋值的原理分析

函数参数的解构赋值

// let { x = 10, y = 5 } = {}function f({ x = 10, y = 5 } = {}) {    return [x, y]}console.log(f({ x: 100, y: 50 })) // [100, 50]console.log(f({ x: 3 })) // [3, 5]console.log(f({})) // [10, 5]console.log(f()) // [10, 5]

可以给函数的参数中传入对象,并且可以对传入的对象设置默认值。它将被解构到函数内部里进行使用,你也可以这样理解。

function f(x = 10, y = 5) {    return [x, y]}console.log(f(100, 50)) // [100, 50]console.log(f(3)) // [3, 5]console.log(f()) // [10, 5]

上面的写法不一样,也会导致结果不一样

function f({ x, y } = { x: 10, y: 5 }) {    return [x, y]}console.log(f({ x: 100, y: 50 })) // [100, 50]console.log(f({ x: 3 })) // [3, undefined]console.log(f({})) // [undefined, undefined]console.log(f()) // [10, 5]

第三和第四个打印会有undefined,这是因为传入的x或y不对应对象属性中的值,匹配不成功所导致的。

关于“ES6解构赋值的原理分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: ES6解构赋值的原理分析

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

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

猜你喜欢
  • ES6解构赋值的原理分析
    这篇文章将为大家详细讲解有关ES6解构赋值的原理分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数组的解构赋值let [a, b, c] = [1,&n...
    99+
    2023-06-15
  • ES6的解构赋值的示例分析
    这篇文章主要介绍ES6的解构赋值的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1 什么是解构赋值解构赋值允许你使用类似数组或对象字面量的语法将数组和对象的属性赋给各种变量。...
    99+
    2024-04-02
  • ES6 解构赋值的原理及运用
    目录数组的解构赋值对象的解构赋值解构赋值的运用交换变量的值从函数返回多个值遍历Map结构函数参数的解构赋值数组的解构赋值 let [a, b, c] = [1, 2, 3] ...
    99+
    2024-04-02
  • ES6中变量解构赋值的示例分析
    这篇文章主要介绍了ES6中变量解构赋值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。变量的解构赋值数组的解构const ...
    99+
    2024-04-02
  • ES6中对象解构赋值应用的示例分析
    小编给大家分享一下ES6中对象解构赋值应用的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!...
    99+
    2024-04-02
  • ES6解构赋值的原理是什么及怎么运用
    这篇文章主要介绍“ES6解构赋值的原理是什么及怎么运用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ES6解构赋值的原理是什么及怎么运用”文章能帮助大家解决问题。数...
    99+
    2024-04-02
  • 基于ES6作用域和解构赋值的示例分析
    小编给大家分享一下基于ES6作用域和解构赋值的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!ES6 强制开启严格模式作用域•var 声明局部变量,for/if花括号中定义的变量在花...
    99+
    2024-04-02
  • 详解JS ES6变量的解构赋值
    目录1.什么是解构?2.数组解构3.数组模式和赋值模式统一4.解构的默认值5.对象的解构赋值6.函数参数7.字符串解构8.数值和布尔值的解构赋值9.解构赋值的应用1.交换变量的值2....
    99+
    2024-04-02
  • ES6如何实现解构赋值
    小编给大家分享一下ES6如何实现解构赋值,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! ES6常见小优化-解构赋值const form&nbs...
    99+
    2023-06-17
  • JavaScript解构赋值的示例分析
    这篇文章给大家分享的是有关JavaScript解构赋值的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概念ES6提供了更简洁的赋值模式,从数组和对象中提取值,这被称为解构...
    99+
    2024-04-02
  • 解析ES6中的解构赋值(数组,对象,嵌套,默认值)
    解构赋值 通过解构赋值,可以快速从对象或者数组中取出属性或者数值。 1.解构赋值 可以通过定位到数组或者对象的某一个位置,将值直接赋给一个或多个变量。 const arr = ['d...
    99+
    2022-11-16
    ES6解构赋值 ES6解构赋值数组 es6对象的解构赋值
  • es6解构赋值的概念是什么
    这篇文章主要讲解了“es6解构赋值的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“es6解构赋值的概念是什么”吧! 在...
    99+
    2024-04-02
  • es6解构赋值的作用是什么
    本文小编为大家详细介绍“es6解构赋值的作用是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6解构赋值的作用是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 ...
    99+
    2024-04-02
  • ES6中解构赋值实现变量批量赋值解放双手
    目录引言一、数组的解构赋值解构失败不完全解构默认值二、对象的解构赋值三、字符串的解构赋值结束语引言 变量的解构赋值, 听起来很复杂, 简单点说可以理解成批量操作变量赋值,先有个印象,...
    99+
    2024-04-02
  • ES6如何实现解构赋值功能
    这篇文章给大家分享的是有关ES6如何实现解构赋值功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:(1)交换变量的值[x, y] = [y...
    99+
    2024-04-02
  • ES6怎么实现解构赋值功能
    本文小编为大家详细介绍“ES6怎么实现解构赋值功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“ES6怎么实现解构赋值功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。(1)交换变量的值[x, y]&...
    99+
    2023-06-17
  • es6对象解构赋值的方法是什么
    ES6对象解构赋值的方法是通过使用花括号({})来提取对象中的属性,并将其赋值给变量。具体方法为:```javascriptcons...
    99+
    2023-10-09
    es6
  • ECMAScript6变量中解构赋值的示例分析
    这篇文章主要介绍了ECMAScript6变量中解构赋值的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。数组的解构赋值ES6允许按照一...
    99+
    2024-04-02
  • ES6对象新功能与解构赋值的方法
    这篇“ES6对象新功能与解构赋值的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ES6对象新功能与解构赋值的方法”文章吧...
    99+
    2023-06-17
  • ES6下javascript解构赋值常见用法总结
    Javascript解构赋值出现的契机: let obj = { a: 1, b: 2 } // 取值 let a =...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作