ES6解构对象、数组、函数传参

这篇具有很好参考价值的文章主要介绍了ES6解构对象、数组、函数传参。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 文章来源地址https://www.toymoban.com/news/detail-600221.html

目录

 1.对象解构

2.对象解构的细节处理

2.1.解构的值对象中不存在时

2.2.给予解构值默认参数 

 2.3.非同名属性解构

3.数组解构

3.1基础解构语法

3.2数组嵌套解构

4.函数解构传参

5.解构小练习


在ES6的新语法中新增了解构的方法,它可以让我们很方便的从数组或者对象身上取数据,简化了大量重复的代码,让我们的代码更具可读性和维护性。

 1.对象解构

在没有对象解构的时期,我们如果想拿到对象身上的数据,就要通过类似于:user.name,这样的语法来获取数据,如果只是单层解构的对象还好,如果对象嵌套的解构很深,就会变的非常麻烦,我们的代码也会变得非常的赘余,很影响可读性,所以解构语法就应运而生了。

看下面的代码,在ES6之前我们取对象的值必须要这样

let user = {
  name: 'zs',
  age: 16,
  sex: '男',
  address: {
    pro: '湖南',
    city: '长沙'
  }
}

//传统的获取值
let name = user.name
let age = user.age
let sex = user.sex
let pro = user.address.pro
let city = user.address.city

 有了对象解构后我们的语法就会变得非常的简短,但功能完全没变

//对象解构语法
let {name,age,sex,address: { pro, city }} = user

很直观的就可以看到代码变得非常的简短,让人非常的舒适

2.对象解构的细节处理

2.1.解构的值对象中不存在时

当我们解构的值是对象中不存在的值时

let user = {
  name: 'zs',
  age: 16,
  sex: '男',
  address: {
    pro: '湖南',
    city: '长沙'
  }
}
//对象解构语法
let { name, age, gender, address:{ pro,city} } = user
console.log(name, age, gender, pro,city)

 ES6解构对象、数组、函数传参,前端,javascript,es6,前端

比如我们解构了一个:gender,但是对象中并不存在这个值,此时该值是:undefined,因为这里要知道的是我们的这一行代码其实是定义:let { name, age, gender, address:{ pro,city} },当你定义的时候本身就是没有值的,所以就是undefined

2.2.给予解构值默认参数 

前面解构不存在的值是未定义,那如果要给默认值,我们只要给它赋值即可,这就是给与默认值

//对象解构语法
let { name, age, gender="女", address:{ pro,city} } = user
console.log(name, age, gender, pro,city)

 ES6解构对象、数组、函数传参,前端,javascript,es6,前端

 2.3.非同名属性解构

这种情况就是当我们解构的值定义的变量名与对象中的不一样时,可以用这种语法:sex:gender,这样解构的值就赋值到gender身上了

let user = {
  name: 'zs',
  age: 16,
  sex: '男',
  address: {
    pro: '湖南',
    city: '长沙'
  }
}
//对象解构语法
let { name, age, sex:gender, address:{ pro,city} } = user
console.log(name, age, gender, pro,city)

3.数组解构

其实数组的解构与对象的解构差别不大,在解构数组时就可以将数组也看成一个对象

3.1基础解构语法

这是可以根据索引来解构的方法

//数组解构
let arr = ['a', 'b', 'c', 'd']
let { 0: n1, 1: n2 } = arr
console.log(n1, n2) //  a  b
let { 2: n3, 3: n4 } = arr
console.log(n3, n4) // c  d

 也可以这样子解构

//数组解构
let arr = ['a', 'b', 'c', 'd']

let [n1, n2] = arr
console.log(n1, n2) // a  b
let [, , n3, n4] = arr
console.log(n3, n4) // c  d

当然数组结构也是可以携带默认值的,和对象解构类似,直接赋值即可

3.2数组嵌套解构

//数组嵌套解构
let arr = ['a', 'b', 'c', 'd', [1, 2, 3, 4]]
let [, , , , newArr] = arr
console.log(newArr) // [1,2,3,4]
//获取第五项中的某一个值
let [, , , , [, , n3]] = arr
console.log(n3) // 3

4.函数解构传参

这是我们平常传入一个对象参数,在函数中要使用的场景

//函数解构传参
let user = {
  name: 'zs',
  age: 16,
  sex: '男',
  address: {
    pro: '湖南',
    city: '长沙'
  }
}

function print(user) {
  console.log(`name:${user.name}`)
  console.log(`age:${user.age}`)
  console.log(`sex:${user.sex}`)
  console.log(`pro:${user.address.pro}`)
  console.log(`city:${user.address.city}`)
}
print(user)

有了解构之后就会变得非常简单

function print({ name, age, sex, address: { pro, city } } = user) {
  console.log(`name:${name}`)
  console.log(`age:${age}`)
  console.log(`sex:${sex}`)
  console.log(`pro:${pro}`)
  console.log(`city:${city}`)
}
print(user)

 实战做项目时,在函数中我们经常会用到各种参数,可能会有默认值或者没有默认值,这时候我们就可以灵活的使用上面的解构对象以及解构数组的方法,让我们的代码看起来更加的简洁,我们也能减少很多赘余的代码,大大提升了代码的可读性。

5.解构小练习

5.1,下面是一个对象,我们要实现解构出name,然后将其他的所有属性放到一个新的对象中

let user = {
  name: 'zs',
  age: 16,
  sex: '男',
  address: {
    pro: '湖南',
    city: '长沙'
  }
}

这里利用扩展运算符即可实现

let { name, ...obj } = user //利用展开运算符收集剩下的属性
console.log(name, obj)

ES6解构对象、数组、函数传参,前端,javascript,es6,前端

5.2,下面有一个对象,解构出第二条评论的用户名和用户内容

let article = {
  title: '文章标题',
  content: '文章内容',
  comments: [
    {
      content: '评论1',
      user: {
        id: 1,
        name: '用户名1'
      }
    },
    {
      content: '评论2',
      user: {
        id: 2,
        name: '用户名2'
      }
    }
  ]
}

 利用上面的知识就可以很轻松的解构出我们需要的元素

//解构出第二条评论的用户名和用户内容
//name:'用户名2',content:'评论2'
let {
  comments: [
    ,
    {
      content,
      user: { name }
    }
  ]
} = article

console.log(content, name)

ES6解构对象、数组、函数传参,前端,javascript,es6,前端

 

到了这里,关于ES6解构对象、数组、函数传参的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【web前端学习】7个ES6解构技巧让代码更简洁

    各位前端er,代码打久了,是否厌倦了编写臃肿且难以阅读的代码?想要提升编码技能并使代码更具可读性和简洁性? 今天这篇文章,与小千一起深入学习 ES6 解构的世界,向您展示如何使用它来编写更干净、更高效的代码 本文将从 解构对象和数组到使用默认值和展开运算符

    2024年02月05日
    浏览(24)
  • 【JavaScript】数组方法 (ES6)

    arr.find(callback) 用于获取第 1 个符合要求的元素: callback : (item, index, arr) = boolean item -当前值、 index -当前索引、 arr -当前数组 返回值: callback 第一次返回 true 的对应 item ;如果没有符合的元素,则返回 undefined arr.findIndex(callback) 用于获取第 1 个符合要求的元素的下标: cal

    2024年02月14日
    浏览(44)
  • ES6 全详解 let 、 const 、解构赋值、剩余运算符、函数默认参数、扩展运算符、箭头函数、新增方法,promise、Set、class等等

    ​ ECMAScript 6.0,简称 ES6,是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言 要讲清楚这个问题,需要回顾历史。1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaSc

    2024年04月15日
    浏览(38)
  • 【ES6】JavaScript 中的数组方法reduce

    reduce() 是一个 JavaScript 中的数组方法,它会对数组的每个元素执行一个提供的 reducer 函数,将其减少到一个单一的值。 这是 reduce() 的基本用法: 这里: callback 是一个用于每个数组元素的函数,接受四个参数: accumulator:累加器累加回调的返回值。它是上一次调用回调时返回

    2024年02月10日
    浏览(23)
  • ES6: 解构赋值

    解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值,分为数组解构、对象解构两大类型。 数组解构是将数组的单元值快速批量赋值给一系列变量的简洁语法,如下代码所示: 数组解构赋值: eg1: eg2: eg3: eg4: eg5: 交换2个变量的值 总结: 赋值运算符 = 左侧的

    2024年02月09日
    浏览(44)
  • ES6 解构赋值

    解构赋值是一种在编程中常见且方便的语法特性,它可以让你从数组或对象中快速提取数据,并将数据赋值给变量。在许多编程语言中都有类似的特性。 在 JavaScript 中,解构赋值使得从数组或对象中提取数据变得简单。它可以用于数组和对象,并且使用相同的语法来解构它们

    2024年02月14日
    浏览(31)
  • ES6 解构

    解构的语法中, ... (展开运算符)和 {} (对象字面量)扮演着不同的角色。 ... (展开运算符): 在解构中, ... 被用作展开运算符,用于将数组或对象中的剩余元素获取为一个单独的变量。 示例: 在上述示例中, ...rest 表示剩余的数组元素。变量 a 和 b 分别赋值为数组的

    2024年02月13日
    浏览(36)
  • ES6-解构

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 🍿🍿🍿es6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,称之为解构。 解构是es6的新特性,比ES5代码简介、清晰、减少代码量 ES5中的为变量赋值,只能直接指定值。 es6匹配模式写法

    2024年02月10日
    浏览(27)
  • 【ES6】—解构赋值

    解构赋值:解构赋值就是一种模式的匹配,只要等号两边的模式完全相同的,那么左边的变量就会被赋值对应右边的值 PS:数组解构赋值时,是通过索引的唯一性赋值的 (1). ES5 的写法 (2). ES6 的写法 ES6的写法 当左右两边的结构模式不匹配时,按照左边变量对应索引的位置赋值

    2024年02月12日
    浏览(29)
  • 【JavaScript】探索ES6中的数组API:简洁高效的操作方式

    ES6 ( ECMAScript 2015 )是 JavaScript 语言的一个重要版本,为编写更加简洁、便捷和可读性更高的代码提供了很多新的特性和 API。想了解ES6所有新增API,可以跳转至我的另一篇博客:JS语法 ES6、ES7、ES8、ES9、ES10、ES11、ES12新特性 其中 数组相关的 API 也在 ES6 中得到了大大的增强,

    2024年02月09日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包