首页 > 其他分享 >js解构赋值如何定义默认值?

js解构赋值如何定义默认值?

时间:2023-12-08 17:55:39浏览次数:25  
标签:属性 console log js 解构 默认值 赋值

在JavaScript中,我们可以在解构赋值语句中定义默认值。这就意味着,如果我们试图解构一个不存在的属性,或者属性值为undefined,那么我们可以为这个属性定义一个默认值。

这在处理JavaScript对象或数组时特别有用,因为我们可能会遇到这样的情况,即某些属性在某些情况下可能不存在或值为undefined。

下面是一些例子来说明如何在解构赋值中定义默认值:

对象解构赋值:

let { a = 10, b = 5 } = { a: 3 };
console.log(a); // 3
console.log(b); // 5


在上述代码中,我们尝试解构属性a和b。属性a在我们的对象中存在,所以它的值是3。但是属性b在我们的对象中并不存在,所以我们使用了默认值5。

数组解构赋值:

let [a = 10, b = 5] = [3];
console.log(a); // 3
console.log(b); // 5


在上述代码中,我们尝试解构数组中的第一个和第二个元素。第一个元素在我们的数组中存在,所以它的值是3。但是第二个元素在我们的数组中并不存在,所以我们使用了默认值5。

这样,当我们在解构对象或数组时,可以确保我们总是得到一个值,即使该值在原始数据结构中并不存在。

在函数中,可以使用默认参数给变量分配默认值:

function userInfo({ name, age = 18 }) {  
  console.log(name);  
  console.log(age);  
}  
  
const user = { name: 'Alice' };  
userInfo(user); // 输出:Alice 和 18

 

标签:属性,console,log,js,解构,默认值,赋值
From: https://www.cnblogs.com/beileixinqing/p/17888743.html

相关文章

  • js 默认展示两行多余隐藏滑动及添加滑动条
    <divclass="nav-box"@scroll="scroll"><divfor="list"class="nav"><divclass="item-box">item</div></div></div><divclass="scroll-box"v-show=&q......
  • tesseract.js 又一个基于webassembly 的tesseract ocr 包装
    tesseract.js是基于webassembly的jstesseract实现,可以在web以及node中运行,我以前简单介绍过一个基于webassembly的工具tesseract-wasm的实现相对简单(包括构建),当然技术上都是基于了emscripten进行的构建,tesseract.js包装了tesseract.js-core功能相比tesseract-wasm丰富......
  • 用html+css+js做canvas烟花模拟网页动画代码
    圣诞节、元旦就要到了,本案例我们将用html+css+js做canvas烟花模拟网页动画代码,程序员的浪漫这不就来了嘛,与家人朋友一起看烟花吧!   附源码<!DOCTYPEhtml><htmllang="en"><head> <metacharset="UTF-8"/> <title>烟花模拟器</title> <metaname="viewport"......
  • Gson与FastJson详解
    Gson与FastJson详解Java与JSON做什么?将Java中的对象快速的转换为JSON格式的字符串.将JSON格式的字符串,转换为Java的对象.Gson将对象转换为JSON字符串转换JSON字符串的步骤:引入JAR包在需要转换JSON字符串的位置编写如下代码即可:Stringjson=newGson().toJSON(要......
  • JSP判断两个时间的时间差
    varqueryStartTime=$("#queryStartTime").val();varqueryEndDate=$("#queryEndDate").val();if(queryStartTime==null||queryEndDate==null){alertx("开始日期、结束日期都不可为空");return;}vartemp_field1=$("#querySta......
  • SpringBoot+线程池实现高频调用http接口并多线程解析json数据
    场景Springboot+FastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/134872936Java中ExecutorService线程池的使用(Runnable和Callable多线程实现):https://blog.csdn.net/BADAO_LIUMAN......
  • java JSON对象与字符串间的转换
    importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSONObject;//字符串转为JSON对象StringstrParam="{\"callerid\":\"013941128270\",\"timestart\":\"2021-07-2709:37:42\",\"status\"......
  • Springboot+FastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包
    场景若依前后端分离版手把手教你本地搭建环境并运行项目:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/108465662在上面搭建SpringBoot项目的基础上,并且在项目中引入fastjson、hutool、lombok等所需依赖后。系统需要对接第三方http接口获取返回的数据,并将json数......
  • 使用js和定位排版创建内联广告
    HTML+JS<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><linkrel="stylesheet"href="../css/index.css"><title>使用js和定位排版创建内联广告</title></head&g......
  • Python的json序列化模块
    一、jsonJson模块提供了四个功能:dumps、dump、loads、load1、前景什么叫序列化——将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。序列化的目的以某种存储形式使自定义对象持久化;将对象从一个地方传递到另一个地方。使程序更具维护性在Python中,能够......