JavaScript解构赋值常用操作

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

数组解构

所谓数组解构,就是获取数组中一部分有用的数据,例子:

let arr = ['first', 'second', 'rqz']
let [x, y, z] = arr //解构操作

console.log(x, y) //first second
console.log(z) //rqz

数组解构还可以和split函数配合使用,优雅又高端:

let [x, y] = 'hello world'.split(' ')

console.log(x) //hello
console.log(y) //world

解构不改变原数组

解构也可以叫做“解构赋值”,其本质就是把数组的元素复制给变量,所以原数组没有发生任何的变化

忽略数组元素

在使用解构赋值的时候,希望得到数组的第13个元素,但是不要第2个元素

let [x, , z] = ['first', 'second', 'third']

console.log(x, z) //first third

可迭代对象使用解构

解构赋值不一定用在数组上,在任何可迭代对象上都是可以使用的

let [x, y, z] = 'xyz'
let [a, b, c] = new Set(['a', 'b', 'c'])

console.log(x, y, z) //x y z
console.log(a, b, c) //a b c
// 解构赋值会对右侧的值进行迭代,然后对左侧的变量进行赋值

赋值给任何变量

在解构赋值的=右侧可以是任何和迭代的对象,而左侧则可以是任何可以赋值的变量,并不局限于简单的变量

let country = {};
[country.name, country.desc] = 'China Beautiful'.split(' ')
console.log(country.name, country.desc) //China Beautiful

注意:代码第一行的分号必须要加,否则将遇到错误!

与.entries()方法结合

Object.entries(obj)方法会返回对象obj的属性列表,可以将解构语法用在这里:

let country = {
  name: 'China',
  desc: 'a beautiful country'
}
for (let [k, v] of Object.entries(country)) {
  console.log(k, v)
}
// name China
// desc a beautiful country

与Map结合

由于Map对象本身就是可迭代的,所以可以直接使用for...of语法结合解构语法:

let map = new Map()
map.set('name', 'China')
map.set('desc', 'Beautiful Country')
for (let [k, v] of map) {
  console.log(k, v)
}
// name China
// desc a beautiful country

变量交换

解构赋值有一个著名技巧,交换两个变量的值:

let a = 1;
let b = 2;
[a, b] = [b, a]
console.log(`a=${a},b=${b}`) //a=2,b=1

多余的元素

在执行解构赋值的过程中,存在两种情况:

  1. 左侧元素多于右侧元素,左侧值使用undefined填充;
  2. 右侧元素多余左侧元素,忽略多余项,也可以使用...收集;

左侧多于右侧:

let [a, b, c] = 'ab'
console.log(a, b, c) //a b undefined
// 可见最后一个变量c被赋值undefined

也可以为多余的左侧变量赋予默认值

let [a = 0, b = 0, c = 0] = 'ab'
console.log(c) //0

右侧多于左侧:

let [a, b] = 'abcd'
console.log(a, b) //a b

如果需要获得其他元素

let [a, b, ...others] = 'abcdefg'
console.log(others) //[ 'c', 'd', 'e', 'f', 'g' ]
// 这里的变量others就将所有剩余选项全部都收集了起来,others可以是任何合法的变量名,不局限于others本身

对象解构

解构语法同样使用于对象,只不过语法上稍有不同

let {var1, var2} = {...}

例子:

let country = {
  name: 'China',
  desc: 'Beautiful'
};
let { name, desc } = country;
console.log(name, desc) //China Beautiful

属性变量映射

可以指定变量和属性的映射,例如:

let country = {
  name: 'China',
  desc: 'Beautiful'
}
//对应的规则:{对象属性:目标变量}
let { name: desc, desc: name } = country;
console.log(`name:${name},desc:${desc}`) //name:Beautiful,desc:China

默认值

和数组一样,我们也可以使用=为变量指定默认值

let obj = {
  name: 'xiaoming',
  age: 18
}
let { name = 'xiaohong', age = 19, height = 180 } = obj
console.log(height) //180

多余的属性

// 可以使用...将剩余的属性重新打包为一个新对象
let obj = {
  x: 'x',
  y: 'y',
  z: 'z'
}
let { x, ...others } = obj
console.log(others) //{ y: 'y', z: 'z' }

多层解析

如果对象出现了嵌套,相应的也可以使用对应的嵌套层次进行解析文章来源地址https://www.toymoban.com/news/detail-604352.html

let People = {
    head:{
        leftEye:'le',
        rightEye:'re'
    },
    hands:['left-hand','right-hand'],
    others:'others'
}
let {
    head:{
        leftEye,
        rightEye
    },
    hands:[left_hand,right_hand],
    others
} = People;
console.log(leftEye,right_hand) //le right-hand

到了这里,关于JavaScript解构赋值常用操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 30个前端开发中常用的JavaScript函数

    🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 在前端开发中通常会用到校验函数,检验是否为空、手机号格式、身份证格式等等。现按照用途分类整理出了30个常用的方法,在V

    2024年02月14日
    浏览(46)
  • JavaScript中BOM常用操作

    window 对象,是 JS 的最顶层对象,其他的 BOM 对象都是 window 对象的属性; document 对象,文档对象; location 对象,浏览器当前URL信息; navigator 对象,浏览器本身信息; screen 对象,客户端屏幕信息; history 对象,浏览器访问历史信息; window.location对象:用于获得当前页面的地

    2024年02月15日
    浏览(37)
  • 【JavaScript】JavaScript 运算符 ⑤ ( 赋值运算符 | 基础赋值运算符 与 复合赋值运算符 )

    JavaScript 赋值运算符种类 : 基础赋值运算符 : 等于 : = ; 复合赋值运算符 : 加等 : += 减等 : -= 乘等 : *= 除等 : /= 取模等 : %= 有符号左移等 : = 有符号右移等 : = 无符号左移等 : = 无符号右移等 : = 在 JavaScript 语言中 , \\\" 赋值运算符 \\\" 的 作用是 为 变量 分配值 ; 最基础的 \\\" 赋值运算

    2024年03月25日
    浏览(52)
  • vue(javaScript) 操作字符串的常用方法

    1. 获取字符串长度 JavaScript中的字符串有一个length属性,该属性可以用来获取字符串的长度 2. 获取字符串指定位置的值 charAt()和charCodeAt()方法都可以通过索引来获取指定位置的值 charAt() 方法获取到的是指定位置的字符; charCodeAt()方法获取的是指定位置字符的Unicode值。 (1)

    2024年02月03日
    浏览(44)
  • 〖大前端 - 基础入门三大核心之JS篇㉔〗- JavaScript 的数组的常用方法 (一)

    当前子专栏 基础入门三大核心篇 是免费开放阶段 。 推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏, 目前阶段免费开放 , 购买任意白宝书体系化专栏可加入 TFS-CLUB 私域社区。 福利:除了通过订阅\\\"白宝书系列专

    2024年02月07日
    浏览(56)
  • JavaScript系列从入门到精通系列第九篇:JavaScript中赋值运算符和关系运算符以及Unicode编码介绍

    文章目录 一:赋值运算符 1:= 2:+= 3:-= 4:*= 5:/= 6:%= 二:关系运算符  1:数值类型关系运算 (一): (二):= (三): (四):= 2:其他类型关系运算 三:Unicode编码表         =右侧的值可以赋值给左侧的变量。         上边这两个写法是一样的。                 

    2024年02月08日
    浏览(60)
  • web前端之JavaScript选择文件和文件夹、全程使用WebApi操作文件、不涉及html、showOpenFilePicker、showDirectoryPicker

    此方式不需要创建多余的html标签,非常适合项目开发中使用。

    2024年02月20日
    浏览(49)
  • ES6 解构赋值

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

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

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

    2024年02月09日
    浏览(62)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包