JavaScript函数参数的传递方式详解

下面是JavaScript函数参数的传递方式的详细讲解:

函数的参数传递方式

在JavaScript中,函数的参数可以通过以下三种方式进行传递:

  1. 值传递 (call by value)

传递的是一个值的副本,函数内部对传递进来的值进行修改不会影响原来的值。例如:

function foo(num) {
  num = 5;
  console.log(num); // 5
}

var a = 10;
foo(a);
console.log(a); // 10

这里传递的是变量a的值10的副本num,对num进行修改不会改变a的值。

  1. 引用传递 (call by reference)

传递的是一个对象的引用,函数内部对传递进来的对象进行修改会影响原来的对象。例如:

function changeObj(obj) {
  obj.name = 'Lucy';
}

var person = { name: 'Tom' }
changeObj(person);
console.log(person.name); // 'Lucy'

这里传递的是对象person的引用,对其属性进行修改会影响原对象。

  1. 传递undefined

如果函数的参数没有传入具体的值,那么其默认值为undefined。例如:

function test(arg) {
  console.log(arg);
}

test(); // undefined

示例

下面是两个示例:

  1. 值传递
var a = 10;
function foo(num) {
  num = 5;
  console.log(num); // 5
}
foo(a);
console.log(a); // 10
  1. 引用传递
function changeObj(obj) {
  obj.name = 'Lucy';
}

var person = { name: 'Tom' }
changeObj(person);
console.log(person.name); // 'Lucy'

以上就是JavaScript函数参数的传递方式的详细讲解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript函数参数的传递方式详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 用VsCode编辑TypeScript的实现方法

    下面是用VsCode编辑TypeScript的详细攻略: 安装VsCode 首先,需要到VsCode官网下载并安装VsCode。可以根据自己的操作系统选择相应的版本。 安装TypeScript插件 安装好VsCode后,需要在插件商店里搜索并安装TypeScript插件。TypeScript插件可以给VsCode提供对于TypeScript的智能提示、语法错…

    JavaScript 2023年6月11日
    00
  • Javascript Date toTimeString() 方法

    以下是关于JavaScript Date对象的toTimeString()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的toTimeString()方法 JavaScript的toTimeString()方法返回表示日期时间部分的字符串,该字符串格式为本地时间。该方法不接受任何参数。 下面是对象的toTimeString()方法的例…

    JavaScript 2023年5月11日
    00
  • JavaScript SHA512&SHA256加密算法详解

    JavaScript SHA512&SHA256加密算法详解 简介 SHA(Secure Hash Algorithm,安全散列算法)是一类加密算法,主要用来确保数字签名的一致性以及文件的完整性。SHA算法最初由美国国家标准技术研究所(NIST)发布,目前SHA算法已经成为应用最广泛的数据加密方法之一。 SHA512是SHA家族中的一种类型,其输出为…

    JavaScript 2023年6月11日
    00
  • JS中的算法与数据结构之栈(Stack)实例详解

    JS中的算法与数据结构之栈(Stack)实例详解 什么是栈? 栈(Stack)是一种遵从后进先出(LIFO)原则的有序集合,是一种线性数据结构,只允许在栈顶进行插入和删除操作。 如何实现栈? JavaScript中可以通过数组来实现栈,使用数组的pop()、push()方法可以轻松地实现栈的相关操作。 创建一个栈(Stack)类 class Stack { …

    JavaScript 2023年5月27日
    00
  • javascript引用类型之时间Date和数组Array

    接下来我会给你详细讲解JavaScript引用类型之时间Date和数组Array的完整攻略。 JavaScript引用类型之时间Date 在JavaScript中,时间是以Date对象的形式存在的。我们可以使用Date对象表示一个日期,也可以使用它来执行与日期相关的操作。 创建Date对象 创建一个Date对象的方式有以下三种: 使用new Date()构造…

    JavaScript 2023年5月27日
    00
  • 强悍无比的WEB开发好助手FireBug(Firefox Plugin)

    强悍无比的WEB开发好助手FireBug(Firefox Plugin) 简介 FireBug 是一款 Firefox 浏览器插件,被广泛应用于 WEB 开发、测试和调试过程中。它提供了富有表现力的交互界面,使得我们可以方便地分析网页的结构、样式和 JS 执行过程。 安装 打开 Firefox 浏览器,进入 FireBug 官网,点击 “Add to Fir…

    JavaScript 2023年6月10日
    00
  • vue使用GraphVis开发无限拓展的关系图谱的实现

    Vue使用GraphVis开发无限拓展的关系图谱的实现 简介 GraphVis是一款基于JavaScript的网络可视化库,它支持将任何TCP/IP网络视为节点和边的集合,还支持关系网和流程图的绘制。在Vue项目中使用GraphVis可以方便地展示关系图谱,并且可以轻松实现拓展。 实现过程 步骤一:安装GraphVis库 可以使用npm命令来安装GraphV…

    JavaScript 2023年6月11日
    00
  • 整理Javascript流程控制语句学习笔记

    下面为你详细讲解“整理Javascript流程控制语句学习笔记”的完整攻略。 攻略概述 本攻略旨在帮助读者更好地理解和掌握Javascript中的流程控制语句,涵盖以下内容: 分类介绍Javascript中的流程控制语句。 详细讲解Javascript中每种流程控制语句的用法、语法和示例。 给出实际例子,帮助读者理解流程控制语句的应用场景。 提供学习Java…

    JavaScript 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部