首页 > 其他分享 >js ... 运算符

js ... 运算符

时间:2023-07-19 16:12:09浏览次数:29  
标签:... name age js 运算符 person let

定义:

扩展运算符(...)是ES6的语法,用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中。

基本用法

let person = {name: "Amy", age: 15}
let someone = { ...person }
someone  // {name: "Amy", age: 15}

特殊用法

数组

由于数组是特殊的对象,所以对象的扩展运算符也可以用于数组。

let foo = { ...['a', 'b', 'c'] };
foo
// {0: "a", 1: "b", 2: "c"}
空对象

如果扩展运算符后面是一个空对象,则没有任何效果。

let a = {...{}, a: 1}
a // { a: 1 }
Int类型、Boolen类型、undefined、null

如果扩展运算符后面是上面这几种类型,都会返回一个空对象,因为它们没有自身属性。

复制代码
// 等同于 {...Object(1)}
{...1} // {}

// 等同于 {...Object(true)}
{...true} // {}

// 等同于 {...Object(undefined)}
{...undefined} // {}

// 等同于 {...Object(null)}
{...null} // {}
复制代码

 

字符串

如果扩展运算符后面是字符串,它会自动转成一个类似数组的对象

{...'hello'}
// {0: "h", 1: "e", 2: "l", 3: "l", 4: "o"}

对象的合并

let age = {age: 15}
let name = {name: "Amy"}
let person = {...age, ...name}
person; // {age: 15, name: "Amy"}

注意事项

自定义的属性和拓展运算符对象里面属性的相同的时候:

自定义的属性在拓展运算符后面,则拓展运算符对象内部同名的属性将被覆盖掉。
let person = {name: "Amy", age: 15};
let someone = { ...person, name: "Mike", age: 17};
someone;  //{name: "Mike", age: 17}
自定义的属性在拓展运算度前面,则变成设置新对象默认属性值。
let person = {name: "Amy", age: 15};
let someone = {name: "Mike", age: 17, ...person};
someone;  //{name: "Amy", age: 15}
自定义的属性在拓展运算度前面,且该属性是拓展预算符后对象里的,则会取出该对象的值,拓展预算符则会取出剩下的属性。
let person = {name: "Amy", age: 15};
let someone = {name, ...person};
someone;  //{name: "Amy", age: 15}

 原文地址https://www.cnblogs.com/caihongmin/p/16395573.html

标签:...,name,age,js,运算符,person,let
From: https://www.cnblogs.com/louisxx/p/17565887.html

相关文章

  • Java运算符
    Java运算符-Java语言支持如下运算符:优先级()1算术运算符:+,-,*,/,%,++,--,2赋值运算符:=3关系运算符:>,<,>=,<=,==,!=instanceof4逻辑运算符:&&,||,!5位运算符:&,|,^,~,>>,<<,>>>(了解)6条件运算符:?:7扩展赋值运算符:+=,-=,*=,/=pa......
  • 在线CAD如何配合three.js绘制带线宽的线段
    前言1.在线CAD的产品经常会被集成到很多用户的网页系统内,前端开发人员只要会JavaScript,就可以对在线CAD进行集成和二次开发,今天这篇文章我们讲一下梦想CAD控件云图(H5方式)如何配合three.js绘制带线宽的线段。2.在这之前,如果还没有安装梦想CAD控件的朋友,可以查看快速入门,链接如......
  • 关于用JS判断PC客户端是否安装某个软件的方法
    开发过程中,我们经常会碰到这样的需求:在web网页上,检测电脑上是否安装了某个软件。由于浏览器的安全机制,js没有办法通过浏览器去访问注册表信息,除非用浏览器扩展。 如果想在web网页中判断PC客户端是否安装了某个软件,可以试用标准的浏览器特性:检查浏览器是否支持自定义协议处理程......
  • IC卡读卡器web插件中使用js异步await/async调用接口
    js中使用异步await/async方式,对于程序的结构和逻辑都有非常大的好处,对于异步await/async有如下描述:async表示这是一个async函数,await只能用在async函数里面,不能单独使用.async返回的是一个Promise对象,await就是等待这个promise的返回结果后,再继续执行.await等待的是一个Pro......
  • android 加载assets 本地json
    Android加载Assets本地JSON的实现作为一名经验丰富的开发者,我很荣幸能够教会你如何在Android应用中加载本地JSON文件。下面我将逐步介绍整个实现过程,并提供相应的代码示例和注释。实现步骤首先,我们来看一下加载Assets本地JSON的实现步骤:步骤说明1获取AssetsManager对......
  • android 遍历json串
    Android遍历JSON串的流程在Android开发中,我们经常会使用JSON(JavaScriptObjectNotation)作为数据交换的格式。遍历JSON串是一项基本的开发技能,它可以帮助我们在应用程序中获取和使用JSON数据。下面是遍历JSON串的基本流程:步骤描述步骤一创建JSON对象或解析JSON字符串......
  • css将多余的字变成...
    display:-webkit-box;/*作为弹性伸缩盒子模型显示*/-webkit-line-clamp:1;/*显示的行数;如果要设置2行加...则设置为2*/overflow:hidden;/*超出的文本隐藏*/text-overflow:ellipsis;/*溢出用省略号*/-webkit-box-orient:vertical;/*伸缩盒子......
  • JS 嵌套循环
    for(vari=0;i<5;i++){while(i%3==0){i++;console.log(i);break;}console.log(i);}for(vari=0;i<5;i++){while(i||i++){console.log(i);continue;console.l......
  • JSONP方式解决跨域
     <script>//封装一个jsonp函数functionjsonp({url,params,callback}){returnnewPromise((resolve,reject)=>{//定义回调函数window[callback]=function(data){resolve(data)}......
  • Nest.js框架下,nest g app auth 命令报错!
    首先报错信息是:Failedtoexecutecommand:node@nestjs/schematics:sub-app--name=auth--no-dry-run--no-skip-import--language="ts"--source-root="apps/reservations/src"--spec--no-flat--spec-file-suffix="spec",大概的意思就是无法执行这条命令。......