当前位置: 首页 > news >正文

js基本功(五)

rest参数

Rest参数是ES6引入的一个特性,用于将函数调用时传递的不定数量的参数收集到一个数组中。

function sum(...numbers) {
    return numbers.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3, 4, 5)); // 输出 15

在上述代码中,…numbers会将所有传入的参数收集到一个名为numbers的数组中。Rest参数必须是函数参数列表中的最后一个参数。

arguments

arguments 是一个特殊的对象,用于在函数内部访问传递给该函数的所有参数。它是一个类数组对象,包含函数调用时传递的所有参数,但并不是一个真正的数组,因此它没有数组的内置方法(如 .map()、.forEach() 等)

function sum() {
    let total = 0;
    for (let i = 0; i < arguments.length; i++) {
        total += arguments[i];
    }
    return total;
}

console.log(sum(1, 2, 3, 4, 5)); // 输出 15

与 rest 参数的比较:

  • arguments 是一个类数组对象,而 rest 参数是一个真正的数组。
  • rest 参数需要显式声明,而 arguments 是函数内部自动提供的。

concat

concat对原数组不产生影响

const arr = [1,2]
const arr1 = [3,4]
const arr2 = arr.concat(arr1)
arr2// [1, 2, 3, 4]
arr  //  [1,2]
arr1 //  [3,4]

浅拷贝

数组中的concat,slice,扩展运算符,对象中的Object.assign是浅拷贝
要用深拷贝就用JSON.stringify 将对象转为字符串,再使用 JSON.parse

flat

多维数组扁平化

const arr1 = [1, [2, [3, [4]]]];
console.log(arr1.flat()); // [1, 2, [3, [4]]]
console.log(arr1.flat(2)); // [1, 2, 3, [4]]
console.log(arr1.flat(Infinity)); // [1, 2, 3, 4]

flatMap

只能扁平化一层,不能像flat那样指定Infinity无限层级

扩展运算符

let{ x, y, ...z } = { x: 1, y: 2, a: 3, b: 4 };
x// 1    y // 2    z // { a: 3, b: 4 }

注意这里跟rest参数对比一下,z并不是一个数组

为什么Symbol不能用new关键字

Symbol 是一种原始数据类型,而不是一个构造函数,因此不能使用 new 关键字来创建。

相关文章:

  • 【Linux网络#13】:网络层(IP 协议 网络通信 全球网络 路由转发)
  • STM32F4 UDP组播通信:填一填ST官方HAL库的坑
  • 【JAVA架构师成长之路】【电商系统实战】第12集:秒杀系统性能优化实战(CAN + Nginx + Sentinel)
  • Myslq表的内外连接
  • tomcat安装
  • [数据抓取] Python 网络爬虫 - 学习手册
  • WIFI ESP8266以及基础功能介绍
  • Python环境安装(3.8)
  • C++学习之格斗小游戏综合案例
  • 线性代数--矩阵基本计算(加减乘法)
  • Linux 配置静态 IP
  • el-table(elementui)表格合计行使用以及滚动条默认样式修改
  • 【动态规划 矩阵快速幂】P8624 [蓝桥杯 2015 省 AB] 垒骰子|普及+
  • Zypher Network :基于零知识证明方案为 AI 赋予可信框架
  • 自我训练模型:通往未来的必经之路?
  • #UVM# 关于 config_db 机制中省略 get 语句的条件
  • 安装CUDA12.1和torch2.2.1下的DKG
  • 文件上传漏洞(upload靶场)
  • 【Hadoop】详解HDFS
  • 第四次CCF-CSP认证(含C++源码)
  • 企业网站改版方案/怎么进入百度推广账户
  • 网站建设服务合同书/学网络运营需要多少钱
  • 泸州网站建设公司/seo技术306
  • 怎样学做网站运营/怎样做app推广
  • 全国建筑行业资质查询平台/seo好seo
  • 网站开发语言太老/各大网站域名大全