添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

数组元素缺失时填充默认值

示例:以names 数组为基础,我们尝试获取数组的第四个元素,然而数组总共只有三个元素,会出现什么样的结果?

const names = ['zzg', 'zcx', 'zcy']
const[one, two, three, four] = names
console.log(one)
console.log(two)
console.log(three)
console.log(four)

效果截图:

针对上述场景,four=underfinder 是不愿看到的。

解决办法 : 提前给变量赋上默认值

const names = ['zzg', 'zcx', 'zcy']
const[one, two, three, four='wz'] = names
console.log(one)
console.log(two)
console.log(three)
console.log(four)

效果截图:

跳过数组中的元素

实际场景 :在实际开发过程中,想要跳过数组中的某个元素取值,这样就可以避免取到不想取的值。

ES6提供解决方案:使用逗号运算符进行分隔,用于避免分配相应的数组元素,直接跳到下一个元素。如果想要跳过多个元素,多加几个逗号就可以了。

const names = ['zzg', 'zcx', 'zcy']
const[one, two, three, four='wz'] = names
const[first, , third] = names
console.log(first)
console.log(third)

效果截图:

分配数组中剩下的给某元素

实际场景 :如果从数组中提取单个元素,那么对于想要取数组中的后面连续部分的元素怎么处理?

ES6提供解决方案:通过在最后一个变量前加 ... 标记,作用:分配数组中剩下的所有元素给 rest 变量。

const names = ['zzg', 'zcx', 'zcy']
const[one, two, three, four='wz'] = names
const[first, ...rest] = names
console.log(first)
console.log(rest)

效果截图:

JS(解构) 之对象

描述一个人的对象:

const person = {
    'name': '周志刚',
    'age': 30,
    'facts':{
        'hobby': '读书、厨艺',
        'worker': 'java Developer'

从对象中提取数据

实战:从person 对象中提取name 和age 属性值

const person = {
    'name': '周志刚',
    'age': 30,
    'facts':{
        'hobby': '读书、厨艺',
        'worker': 'java Developer'
const{name, age} = person
console.log(name)
console.log(age)

效果截图:

提取嵌套值 

实际场景:在实际开发过程中,对象数据值存在嵌套现象,对于提取对象结构中深层次的值该怎么处理?

ES6提供解决方案:通过冒号可以描述对象中的路径,这样就可以取到对象中深层的嵌套值

const person = {
    'name': '周志刚',
    'age': 30,
    'facts':{
        'hobby': '读书、厨艺',
        'worker': 'java Developer'
const{facts:{worker}} = person
console.log(worker)

效果截图:

数据缺失时填充默认值 

实际场景:在解构对象时,当想要抽取的值不存在时,可以给对象里的值赋默认值。

实例:获取person 对象中不存在的属性值address.

const person = {
    'name': '周志刚',
    'age': 30,
    'facts':{
        'hobby': '读书、厨艺',
        'worker': 'java Developer'
const{facts:{address}} = person
console.log(address)

效果截图:

 上述的结果,address= underfined 是不愿意看到的。

针对上述问题的解决办法:为address 属性值填充默认值。

const person = {
    'name': '周志刚',
    'age': 30,
    'facts':{
        'hobby': '读书、厨艺',
        'worker': 'java Developer'
const{facts:{address='广东.深圳'}} = person
console.log(address)

效果截图:

解构函数参数 

业务需求:编写一个函数,接受一个对象作为参数。直接在参数列表中对对象进行解构。

实例:定义一个toString 函数,接收person 对象作为参数,输出person 对象的name,age 和不存在的address 属性值(facts嵌套属性)

const person = {
    'name': '周志刚',
    'age': 30,
    'facts':{
        'hobby': '读书、厨艺',
        'worker': 'java Developer'
const toString = ({name, age, facts:{address='广东.深圳'}})=>{
     return `My name is ${name}, age is ${age}, come from ${address}`
// toString 函数被调用
console.log(toString(person))

效果截图:

解构含义解构功能含义:从复杂数据类型中(数组或对象)中提取数据的过程。JS(解构) 之数组从数组中提取首个元素方式一:基于数组下标提取元素const names = ['zzg', 'zcx', 'zcy']const it = names[0]console.log(it)方式二:基于ES6 新语法(const) 提起数组元素const names = ['zzg', 'zcx', 'zcy']const[one] = namesconsole.log(one)
ES6 有很多新特性,它很大程度上提升了 JavaScript 的编程体验,并且也告诉外界,JavaScript 依旧强势。 其一个新特性是其对数组对象解构,通过解构方法从数组对象提取数据变得非常简单和方便。接下来看一下它是如何做到的,我们从数组开始讲起。 从数组提取数据 假设你有如下的数组里面是几个人的名字: const names = ['Luke', 'Eva', 'Phil'];复制代码 接下来,使用解构里面提取数据。 从数组元素 首先从最基本的开始——提取数组第一个元素。
JavaScript只有一种数据类型可以包含多个值:对象Object。数组对象的一种特殊形式。 对象的形式如下:{key: value, key: value, ...} 数组的形式如下:[value, value, ...] 数组对象都有一个key -> value结构。但是数组的键必须是数字,而任何字符串都可以用作对象的键。键值对也称为“属性”。 可以使用点表示法访问对象属性...
目录一、数组的声明1. 标准式写法2. 白话式写法二、数组的赋值1. 在建立数组的时候直接赋值2. 根据键值进行赋值三、数组值四、数组拼接方法---concat()五、数组转化为字符串-----join()六、数组翻转 一、数组的声明 1. 标准式写法 var arr = new Array(); new关键字:实例化,也就是创建 Array():数组的类对象 数组为引用类型,唯一属性为length属性(长度属性) 2. 白话式写法 var arr = []; 二、数组的赋值 js 数据类型分为两大类:原始类型和对象类型。 原始类型包括:数值、字符串、布尔值、null、undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象—-函数(js的一等对象)、数组(键值的有序集合)。 数组元素的添加 arrayObj.push([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到数组开始,数组的元素自动后移,返回数组新长度 SpringSecurity 提示ProviderNotFoundException: No AuthenticationProvider found for **** francis_9527: 为啥我的两个,只有一个生效 Git提示:ssh: Could not resolve hostname github.com: No address associated with hostname 刀不锋马太瘦: github的地址是不是就是本机的ip地址 Windows 环境配置Github 的SSH key 喜羊羊love红太狼: 感谢,亲测好用 Docker 安装 MySQL-8.0.23详解 橙cc_: 很棒的文章,超详细 想请教一下大佬,此处的mysql-files创建与挂载是用来做什么的,积累薄弱,希望大佬能指点一二 -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \ qt.qpa.plugin: could not load the qt platform plugin “windows“ in ““ even though it was found. Conda 安装Pytorch Java 参数传递:按值传递和按地址传递