首页 > 其他分享 >ES6的解构赋值时如何设置默认值?

ES6的解构赋值时如何设置默认值?

时间:2025-01-01 09:44:14浏览次数:1  
标签:ES6 arr console log 解构 默认值 赋值

在ES6中,解构赋值允许你设置默认值。这在你想要确保某个变量在被解构时有一个特定的值(如果原始对象中没有该属性或者该属性的值是undefined)时非常有用。

以下是一些设置默认值的示例:

1. 对象的解构赋值

const obj = { a: 1, b: 2 };
const { a = 3, b = 4, c = 5 } = obj;

console.log(a); // 输出 1,因为 obj 中有 a 属性,且其值不是 undefined
console.log(b); // 输出 2,因为 obj 中有 b 属性,且其值不是 undefined
console.log(c); // 输出 5,因为 obj 中没有 c 属性,所以使用默认值

2. 数组的解构赋值

数组的解构赋值也可以设置默认值,但需要注意的是,数组的默认值是基于位置的,而不是基于名称的。

const arr = [1, 2];
const [first = 3, second = 4, third = 5] = arr;

console.log(first); // 输出 1,因为 arr 的第一个元素是 1
console.log(second); // 输出 2,因为 arr 的第二个元素是 2
console.log(third); // 输出 5,因为 arr 中没有第三个元素,所以使用默认值

在这些示例中,如果原始对象(或数组)中的属性(或元素)是undefined,或者根本不存在,那么解构赋值将使用你提供的默认值。

标签:ES6,arr,console,log,解构,默认值,赋值
From: https://www.cnblogs.com/ai888/p/18645300

相关文章

  • ES6中定义私有属性详解
    在ES6中,定义私有属性的方式相对传统的JavaScript有所不同。ES6并没有提供直接的语法来定义私有属性,但可以通过几种方法间接实现私有属性。1.使用Symbol来模拟私有属性Symbol是一种新的数据类型,可以作为对象的键,并且它的值是唯一的,不容易被外部访问或修改。示例:const_p......
  • Vulnhub靶场(driftingblues6_vh)
    1.搭建靶机官网地址:https://www.vulnhub.com/entry/driftingblues-6,672/官网下载.ova文件双击vm打开导入获取靶机IPkail终端输入arp-scan-llook一下主页2.信息收集扫描后台目录dirbhttp://192.168.131.179查看目录通过访问robots.txt,我们获得了一个/t......
  • 一文详解-JavaScript中 es5 原型和 es6-class
    一文详解-JavaScript中es5原型和es6-class原型真的有用吗有不少小伙子应该会有这个感觉大家都在说原型prototype很重要,那为什么我却用不到?原因不外乎这几个:框架重度使用者,我们目前的前端主流业务,几乎都是使用vue,react,微信小程序在开发项目。这些框架封装得太过......
  • el-select组件改造成多选显示多个标签加数字标签的形式并且点击某个默认值不允许删除
     单独设置一个文件当做公共组件调用<template><main><el-selectref="select"v-model="values"multiplestyle="width:100%":placeholder="placeholder"@change="handleChang......
  • 前端面试题合集(一)——HTML/CSS/Javascript/ES6
    前端经典面试题总结前端开发领域涵盖了大量的知识点,面试中的经典问题通常集中在HTML、CSS、JavaScript及ES6等基础技能上。以下是针对这些知识点的一些总结:1.HTMLHTML是Web页面结构的基础,它定义了网页的内容和结构。面试中的HTML问题常常涉及到常见标签的使用......
  • ES6中class继承为什么一定要写super()?super代表什么?
    在ES6中,class关键字用于定义一个类,而extends关键字则用于实现类之间的继承。当一个类继承自另一个类时,子类的构造函数中必须调用super()方法。这是因为super()实际上调用了父类的构造函数,以确保父类中的属性和方法能够被正确地初始化并继承到子类中。super关键字在类继承......
  • Object.defineProperty 和ES6中的Proxy有什么区别?
    Object.defineProperty和ES6中的Proxy在前端开发中都具有重要作用,但它们之间存在一些显著的区别。以下是对这两者区别的详细分析:监听范围:Object.defineProperty:此方法用于监听对象的数据变化,尤其是对象的属性。然而,它的局限性在于无法监听数组的变化(例如,数组下标的变化、数组......
  • 请使用es5模拟实现一个es6的symbol
    在ES5中,没有原生的Symbol类型,但我们可以尝试通过创建一个具有唯一标识符的对象来模拟Symbol的行为。请注意,这种模拟并不完全等同于ES6的Symbol,但它可以提供类似的功能。以下是一个简单的模拟实现:(function(){varsymbolRegistry={};varsymbolCounter=0;fu......
  • 【es6复习笔记】生成器(11)
    什么是生成器函数生成器函数是一种特殊的函数,它可以在执行过程中暂停并保存当前状态,然后在需要时恢复执行。生成器函数通过yield关键字来实现暂停和恢复执行的功能。生成器函数的基本用法定义生成器函数:使用function*关键字来定义生成器函数。使用yield关键字:在生......
  • JavaScript 解构(Destructuring)简介
    解构是ES6引入的一种语法,它允许从数组或对象中快速提取值,并将这些值赋给变量。解构使代码更加简洁、可读性更强,特别是在处理复杂的数据结构时。解构赋值分类数组解构赋值对象解构赋值嵌套解构默认值剩余(Rest)解构1.数组解构赋值基础用法从数组中按顺序提取值,赋给变......