iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >ES6新语法之解构实践指南
  • 865
分享到

ES6新语法之解构实践指南

2024-04-02 19:04:59 865人浏览 安东尼
摘要

目录1.解构初了解1.用平常的语法2.用解构的方法2.解构详细解析2.1对象属性赋值形式2.2变量的声明2.3怎么解构3.实践3.1数组的解构3.2对象的解构3.3解构参数3.4复杂

1.解构初了解

解构是es6的一个新的语法特性,可以把他看作是一个

具有结构赋值功能的一个语法。

关于解构通常有俩种,有数组解构和对象解构

解构有什么优点吗?为什么我们用他。

ok,让我们用一个例子来显示一下解构的优点

定义一个函数,返回一个数组(含3个数),用a,b,c来接受。

1.用平常的语法

function foo(){
            return [1,2,3]
        }
var temp=foo(),
a=temp[0],b=temp[1],c=temp[2]
console.log(a,b,c)

构造一个函数手动赋值,用一个临时变量temp,将值传递给a,b,c

2.用解构的方法

  function foo(){
      return [1,2,3]
      }
   var [a,b,c]=foo()
  console.log(a,b,c)

在输出的结果都是一样,都输出(1,2,3)

所以你怎么选。

2.解构详细解析

2.1对象属性赋值形式

相比于之前的赋值形式我们都熟悉与=a的赋值形式

但是解构语法翻转了这种形式,,左侧变量作为一个“模式”

用于将右侧的数组赋值给左侧的变量

接着讨论一下在上面{a,b,c}其实是{a:a,b:b,c:c}的简写。

那么在赋值的时候省略的部分是a:   还是 :a

在这我们就需要去了解对象属性赋值形式

function foo(){
      return {a:4,b:5,c:6}
    }
var { a:aitem,b:bitem,c:citem }=foo()
     
 console.log(aitem,bitem,citem)
 
 var x=10,y=20
 var o={d:x,e:y}
 console.log(o.d,o.e)

 现在我们大概能明白了吧,

用一张图来解释

a27775d61b604a1a92f718a3bc62eafe.png

2.2变量的声明

在前面我们看到了使用var声明变量,其实也可以使用let,const声明

也可以通过IEIF的形式赋值比如({x,y,z}=bar())

 好的,那么关于变量的话,他只能被设置为变量标识符吗?

这种想法是愚蠢的,任何合法的赋值表达式都可以

用两个例子来解析

2.3怎么解构

记住一个原则,对称解构。

1.解构的过多

 怎么理解,就是左右的赋值不对称,并不是所有的值都用来解构,

多余的值会被设置为undefinder

2解构的过少

右侧的"变量"多余左侧的变量

3.解构正好

左右变量相等

 数组的解构是按顺序排列的,变量的取值有他的位置决定

对象的解构,对象的属性没有次序,变量必须与属性同名,才能取到正确的值,对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是后者,而不是前者

3.实践

3.1数组的解构

var a1=[1,[2,3,[4]],5]
var [a,[b,c,[d]],e]=a1
console.log(a,b,c,d,e)

输出1,2,3,4,5

在这里采用重复解构的形式,解构的形式就是从内向外依次解构

3.2对象的解构

var  o1={a:{b:{c:6}}}
var {a:{b:{c:w}}}=o1
console.log(w)

输出6

3.3解构参数

 function foo({x,y}){
        console.log(x.y)
    }
console.log(3,4)

输出3,4,如果是console.log(3)的话会报错,但是x的值是已经解构的

3.4复杂解构

let wangfei = {
name: "王菲",
   age: 18,
  songs: ["红豆", "流年", "暧昧", "传奇"],
  history: [{ name: "窦唯" }, { name: "李亚鹏" }, { name: "谢霆锋" }],
};
 
let {
   songs: [one, two, three],
  history: [first, second, third],
} = wangfei;
console.log(one, two, three,first, second, third)

44485beae5484ba78a5e2b0028e70e36.png

 4.总结

1.了解了解构的含义,及优点

2.学会了解构对象属性赋值的形式

3.了解了一些解构的技巧

4.用几个例子来动手实践。

到此这篇关于ES6新语法之解构的文章就介绍到这了,更多相关ES6新语法解构内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: ES6新语法之解构实践指南

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

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

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

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

下载Word文档
猜你喜欢
  • ES6新语法之解构实践指南
    目录1.解构初了解1.用平常的语法2.用解构的方法2.解构详细解析2.1对象属性赋值形式2.2变量的声明2.3怎么解构3.实践3.1数组的解构3.2对象的解构3.3解构参数3.4复杂...
    99+
    2024-04-02
  • ES6 语法:JavaScript 开发者的终极指南
    ES6 基础 ES6,也称为ES2015,是JavaScript语言的第六次重大更新。它引入了许多新特性,包括: 箭头函数:简短、简洁的函数语法 类:支持面向对象编程 模块:将代码组织成独立、可重用的模块 箭头函数 箭头函数使用 =...
    99+
    2024-03-09
    JavaScript、ES6、语法、箭头函数、类、模块
  • 实践指南:构建高效的Go语言微服务框架
    实践指南:构建高效的Go语言微服务框架 随着云计算、大数据和人工智能等技术的快速发展,微服务架构已经成为了软件开发领域的一种主流趋势。在微服务架构中,每个功能模块被拆分成独立的服务,通...
    99+
    2024-03-09
    框架 go语言 微服务 用户注册 标准库
  • Go语言导包指南:详细解读与实践
    Go语言是一种由Google开发的编程语言,它具有高效、简洁、并发等特点,因此越来越受到开发者的喜爱。在Go语言中,导入包是非常常见的操作,通过导入包可以引入其他包中的功能,并在当前程...
    99+
    2024-04-02
  • Go语言接口开发实践指南
    Go语言接口开发实践指南 在Go语言中,接口是一种非常重要的概念,它能够帮助我们实现代码的灵活性和可复用性。接口定义了一组方法的集合,只要一个对象实现了这些方法,就被认为是实现了该接口...
    99+
    2024-04-02
  • JavaScript ES6 语法指南:从初学者到专家
    入门: 对于 JavaScript 初学者来说,ES6 引入了许多简化代码的特性,例如: 块级作用域:使用 let 和 const 关键字定义变量,限制其作用域仅限于块内。 箭头函数:简化函数表达式,省略了 function 关键字和...
    99+
    2024-03-09
    JavaScript ES6 语法 初学者 专家指南
  • Vue开发实践指南之应用入口
    目录前言创建应用添加 Loading 效果开始创建应用多页面改造总结前言 Vue 开发实践为本人的最佳实践,非业内最佳,仅用于提供给各位做参考,这是系列文,但发布时间和内容不固定。 ...
    99+
    2024-04-02
  • Go语言多线程编程实践指南
    Go语言多线程编程实践指南 Go语言作为一种现代化的编程语言,自带优秀的并发支持,使得多线程编程变得非常简单和高效。本文将介绍如何使用Go语言进行多线程编程,并通过具体的代码示例展示其...
    99+
    2024-02-29
    实践 多线程 go语言
  • Go语言图形编程技术解析与实践指南
    Go语言作为一种快速且高效的编程语言,一直备受程序员们的喜爱。它不仅可以用于后端开发,还可以用于图形编程。本文将从技术解析和实践指南两个方面探讨如何在Go语言中进行图形编程,在文章的后...
    99+
    2024-04-02
  • C语言数据结构不挂科指南之队列详解
    目录队列队列基本概念循环队列顺序队列的 C 语言实现链式队列的 C 语言实现自考要点队列 这篇博客主要介绍一下队列的概念,并且采用 C 语言,编写两种存储实现方式:顺序存储和链式存储...
    99+
    2024-04-02
  • Go 语言助力高效运维:实践指南
    go 语言在运维领域应用广泛,本文提供了一个实用指南,展示如何使用 go 语言解决常见运维任务,例如指标收集和监视。其他运维用例包括日志汇总、自动化配置管理和故障排除。go 语言的高并发...
    99+
    2024-04-08
    go语言 运维实践 golang 垃圾回收器 标准库
  • Java 热更新 Groovy 实践及踩坑指南(推荐)
    目录Groovy 是什么?Java 为何需要 Groovy 热部署技术设计及实现使用场景风控安全——规则引擎监控中心活动营销技术实现脚本加载/更新脚本执行生产...
    99+
    2024-04-02
  • Golang实践指南之获取目录文件列表
    目录前言起因实现封装测试及结果扩展优化接口正则表达式带数字的文件名称排序总结前言 获取目录下匹配某种规则的文件,返回文件列表,在开发中比较常用。本文实现此功能,并做了些扩展。 起因 ...
    99+
    2023-01-07
    golang 目录结构 golang获取目录文件列表 golang 遍历目录
  • HTML语法:构建网页的终极指南
    HTML简介 超文本标记语言(HTML)是用于创建网页的基础编程语言。它是一种标记语言,使用一系列标签来描述网页的内容和结构。这些标签告诉浏览器如何呈现文本、图像、链接和其他元素。 HTML语法基础 HTML文档由两部分组成:头部和主体...
    99+
    2024-03-09
    HTML语法 HTML元素 HTML标签 HTML结构
  • Go语言实时大数据处理的实践指南
    使用Go语言进行实时大数据处理的实践指南在当今信息时代,大数据处理已成为许多企业和组织的重要应用之一。为了能够高效、准确地处理海量的数据,许多开发者选择使用Go语言来进行实时大数据处理。Go语言以其高效的并发性能和简洁的语法,成为了大数据处...
    99+
    2023-12-23
    大数据 并发 实时
  • C语言数据结构不挂科指南之线性表详解
    目录基本概念线性表的顺序存储线性表的顺序存储的时间复杂度线性表的链接存储线性表在单链表上实现基本运算初始化初始化成功,开始插入元素单链表的时间复杂度循环链表双向循环链表期末考试基本概...
    99+
    2024-04-02
  • FluentMybatis学习之Update语法实践
    目录前言数据准备Update语法简单的写法UpdateByEntity根据表实体更新数据UpdateByExclude根据表实体排除更新数据applyFunc总结前言 本篇文章主要针...
    99+
    2024-04-02
  • Vue3中watch的用法与最佳实践指南
    目录前言🌟一、API介绍二、监听多个数据源三、侦听数组四、侦听对象五、总结✨前言🌟 本文以实验的形式,为大家揭示Vue3中watch的...
    99+
    2024-04-02
  • 用PHP构建IP代理服务器的最佳实践指南
    在网络数据传输中,IP代理服务器扮演着重要的角色,能够帮助用户隐藏真实IP地址,保护隐私、提升访问速度等。在本篇文章中,将介绍如何用PHP构建IP代理服务器的最佳实践指南,并提供具体的...
    99+
    2024-03-11
    服务器 php ip代理
  • Node.js Serverless 实践指南:步入无服务器开发之旅
    Node.js 在无服务器架构中扮演着至关重要的角色,提供了一个构建可扩展、高度可用的应用程序的强大平台。本指南将指导您开启无服务器开发之旅,重点介绍使用 Node.js 在 AWS Lambda 上构建和部署无服务器应用程序的最佳实践。...
    99+
    2024-03-10
    引言
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作