JavaScript 传参方法

news/2024/7/7 21:13:24
1. 值传递

在 JavaScript 中,基本类型(也称为原始类型)包括 undefinednullbooleannumberstringbigintsymbol。这些类型在函数调用时是通过值传递的,这意味着在函数内部修改参数的值不会影响函数外部的原始值。

function modifyValue(value) {
    value = 10;
}

let num = 5;
modifyValue(num);
console.log(num); // 输出:5

 2. 引用传递

与基本类型不同,引用类型(如对象和数组)在传递时是通过引用传递的。这意味着在函数内部修改参数会影响到函数外部的对象或数组。 

function modifyObject(obj) {
    obj.name = "Alice";
}

let person = { name: "Bob" };
modifyObject(person);
console.log(person.name); // 输出:Alice

 

3. 数组解构

通过数组解构,我们可以直接将数组元素分配给函数参数。

 

function sum([a, b, c]) {
    return a + b + c;
}

let numbers = [1, 2, 3];
console.log(sum(numbers)); // 输出:6
4. 对象解构

对象解构允许我们提取对象中的特定属性,并将其赋值给对应的函数参数。

function greet({ name, age }) {
    return `Hello, my name is ${name} and I am ${age} years old.`;
}

let person = { name: "John", age: 30 };
console.log(greet(person)); // 输出:Hello, my name is John and I am 30 years old.

5. Rest 参数

Rest 参数语法允许我们将不确定数量的参数表示为数组。这在处理可变参数函数时非常有用。 

function sum(...numbers) {
    return numbers.reduce((acc, num) => acc + num, 0);
}

console.log(sum(1, 2, 3, 4)); // 输出:10

 

6.默认参数

默认参数允许我们在函数定义时为参数设置默认值,如果在函数调用时未传递该参数,则使用默认值。

function greet(name = "Guest") {
    return `Hello, ${name}!`;
}

console.log(greet()); // 输出:Hello, Guest!
console.log(greet("Alice")); // 输出:Hello, Alice!


http://lihuaxi.xjx100.cn/news/2220547.html

相关文章

Microsoft Store打不开解决办法

//卸载Microsoft Store Get-AppxPackage -alluser WindowsStore | Remove-AppxPackage //重装 Get-AppxPackage -AllUsers Microsoft.WindowsStore* | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register “ ( ( (_.InstallLocation)\AppXManifest.xml”}

Swift开发——索引器扩展

扩展用于向已存在的类型(例如,类、结构体、枚举和协议等)中添加新的功能,扩展甚至可以向系统类型(包括无法查阅代码的类型)中添加新的功能,但是扩展不能覆盖原类型中已有的方法,扩展也不能向类中添加新的存储属性。 01、索引器扩展 扩展可为类、结构体等类型添加索引器。程序段…

JSON、yam|fIProperties

JSON、YAML和Properties都是数据序列化和存储的格式,它们各自有独特的特点和适用场景。 1. JSON (JavaScript Object Notation) : 特点:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于ECMA…

【牛客面试必刷TOP101】Day33.BM70 兑换零钱(一)和BM71 最长上升子序列(一)

文章目录 前言一、BM70 兑换零钱(一)题目描述题目解析二、BM71 最长上升子序列(一)题目描述题目解析总结 前言 一、BM70 兑换零钱(一) 题目描述 描述: 给定数组arr,arr中所有的值都为正整数且不重复。每个值代表一种面值的货币,每种面值的货币…

认知高的人对认知低的人就是降维打击

最近听到最多的是“认知”这俩字,基本上什么都可以跟这俩字联系起来,说你不行的时候,可以说你认知水平太低,说你厉害的时候,可以夸你的认知水平很高。 其实这么说也没有问题,确实认知会影响一个人的一生。…

Socket编程模型

一、整体过程图解 二、Socket编程模型细节 客户端和服务器能在网络中通信,那必须得使用Socket编程,它是进程间通信里比较特别的方式,特别之处在于它是可以跨主机间通信。 创建Socket 的时候,可以指定网络层使用的是IPv4还是IPv6,传…

从0到1,揭秘AI产品经理的高薪秘诀,转型之路与实战资源全解析

前言 随着算法模型的日益精进、计算能力的显著提升以及海量数据的积累,人工智能领域正以前所未有的速度蓬勃发展。 在国家政策的积极推动、社会资本的强劲注入下,人工智能产业正处于技术快速进步的黄金时期,其影响力广泛渗透至教育智能化、…

异步爬虫:aiohttp 异步请求库使用:

使用requests 请求库虽然可以完成爬虫业务,但是对于异步任务来说,它是做不到的, 这时候我们需要借助 aiohttp 异步请求库来完成异步爬虫的编写: 话不多说,直接看示例: 注意:楼主使用的python版…