目录
频道首页
let starArray = [...$('.star')].sort(_ => 0.5 - Math.random());里面的 [...$('.star')]这种写法时什么意思?
收藏
0
IBM5100 最近修改于 2023-07-06 15:39:29
详情

查看别人的源码,没有看懂,本人初学者,在其他论坛和学习网站也没人有详细说法

('查看了moliza网站和javascript的参考书,没有找到\n',) 无

+1 -1
2人
0人
邀请回答
添加回答
添加回答
邀请回答
回答
共(1)个回答 排序
StevenZhou 2023年07月04日
最佳答案

[…\$('.star')] 中的 … 是扩展运算符~

我复制粘贴下释义:

1、javascript中的(…)是什么意思?\ javascript中的这三个点(…)真名叫扩展运算符,是在ES6中新增加的内容,它可以在函数调用/数组构造时,将数组表达式或者string在语法层面展开;还可以在构造字面量对象时将对象表达式按照key-value的方式展开。

字面量一般指[1,2,3]或者{name:’chuichui’}这种简洁的构造方式,但是多层嵌套的数组和对象,这个三个点就无能为力了。\ 简单的说就是:把衣服脱了,不管是大括号([])、花括号({}),统统不在话下,全部脱掉脱掉!\ 下面举些简单的例子说说:

// 数组
var number = [1,2,3,4,5,6]
console.log(...number) //1 2 3 4 5 6
//对象
var gougu = {name:'gouguOA',height:176}
console.log({...gougu}) // {name:'gouguOA',height:176}

2、javascript中的(…)有什么用?\ 它的用处很广泛,我们随处都可以看到,下面再列举几个常见的例子:

a、复制用它

//数组的复制
var arr1 = ['hello']
var arr2 =[...arr1]
arr2 // ['hello']

//对象的复制
var obj1 = {name:'gouguOA'}
var obj2 ={...obj1}
obj2 //  {name:'gouguOA'}

b、合并用它

//数组的合并
var arr1 = ['hello']
var arr2 =['gouguOA']
var mergeArr = [...arr1,...arr2]
mergeArr  // ['hello','gouguOA']

// 对象分合并
var obj1 = {name:'gouguOA'}
var obj2 = {height:176}
var mergeObj = {...obj1,...obj2}
mergeObj // {name: "gouguOA", height: 176}

C、字符转数组用它

var arr1 = [...'hello']
arr1 // ["h", "e", "l", "l", "o"]

d、函数传参用它

可以和正常的函数相结合,灵活使用

function f(v,w,x,y,z){ }
var args = [2,3]
f(1,...args,4,...[5])

e、当我们想把数组中的元素迭代为函数参数时,用它

function f(x,y,z){}
var args = [1,2,3]
f(...args)

// 以前的方法
f.apply(null,args);
IBM5100 2023-07-04 20:54:29
谢谢,看懂了。
回复 IBM5100
添加回复
QuestionBot
z
z
z
z
主页
会议室
Git管理
文章
云文档
看板