`
liugang594
  • 浏览: 990688 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript的传值与传址

 
阅读更多

 

首先看传值与传址的比较:

 

  传值 传址
复制 实际复制的是值,存在两个不同的、独立的拷贝 复制的只是对数值的引用。如果通过这个新的引用修改了数值,则这个改变对最初的引用来说也可见
传递 传递给函数的是值的一个独立拷贝,对它的改变在函数外部没有影响 传递给函数的是对数值的一个引用。如果在函数里通过传递给它的引用修改了数值,则这个修改对外部可见
比较 比较的是两个独立的值(通常是逐字节的比较),以判断它们是否相同 比较的是两个引用,以判断它们是否引用到同一数值。对两个不同的数值的引用不相等,即使这两个数值的值具体相同的字节

 

在JavaScript中,不同的类型会有不同的传递方式:

 

 

传值 传址
数字、布尔值、(字符串?) 所有的对象

 

实际上,也不能这么简单的归类。和java一样,我们也可以统称它们都是按值传递的,只不过对于对象类型,所谓的值,不是对象具体含有的值,而是指这个对象地址。

 

另外,和Java一样,JavaScript中的字符串是不可修改的,因此实际上字符串按哪种方式传递就显得无关紧要了。

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    浅谈js中的引用和复制(传值和传址)

    同样,对于字符串,虽然其内容不可变,但在比较时被视为传值比较。 然而,对于引用类型,赋值实际上是复制了一个引用,即进行“传址”。例如,`var a = [1]; var b = a;`此时,`b`和`a`都指向同一个数组。如果修改`...

    JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例

    在学习JavaScript基础时,变量作用域、传值与传址是核心概念,它们在编程过程中有着举足轻重的作用。本文将对这些概念进行简单介绍,并通过实例加深理解。 首先,关于变量作用域。在JavaScript中,变量的作用域决定...

    javascript的变量、传值、传址、参数之间关系

    JavaScript是一种动态类型的脚本语言,其变量、传值、传址和参数之间的关系是理解和使用JavaScript中的一个基础但关键点。接下来,我会详细解释这些概念。 首先,JavaScript中的变量可以存储两种类型的数据:基本...

    js代码-函数调用的传值和传址

    本主题聚焦于JavaScript中的函数调用机制,特别是关于传值和传址的概念。理解这两个概念对于编写高效和可维护的代码至关重要。 首先,我们要明白在JavaScript中,变量有两种类型:基本类型(如字符串、数字、布尔值...

    javascript中的变量是传值还是传址的?

    在这种情况下,变量间的赋值操作是传值,传递的是值的副本。 ```javascript var stringValue = "淡淡的"; var anotherStringValue = stringValue; stringValue = "I have changed"; ``` 在这个例子中,`...

    最新大厂前端面试题-面试指南JavaScript篇面试题.docx

    本文将对 JavaScript 基础知识点进行总结,涵盖数据类型、类型转换、作用域、变量提升、传值 VS 传址等知识点。 数据类型 JavaScript 中有 7 种基本数据类型:string、number、object、boolean、null、undefined ...

    JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享

    实际上,JavaScript总是以传值(byVal)的方式传递参数,但这并不意味着对于所有类型的值都表现为传统的传值行为。理解这一点的关键在于理解JavaScript中的值类型(如number、string)和引用类型(如Object、Array)...

    详解javascript函数的参数

    在JavaScript中,传递参数主要分为“传值”和“传址”两种方式。当函数通过值传递参数时,实际上传递的是变量值的一个副本。这意味着在函数内部对参数进行修改不会影响到原始变量。相反,当函数通过引用传递参数时,...

    JavaScript 面试基础

    JavaScript 中变量的作用域相对与 JAVA、C 这类语言显得更自由,一个很大的特征就是 JavaScript 变量没有块级作用域,函数中的变量在整个函数都中有效。 例如: ```javascript function outPut(s) { document....

Global site tag (gtag.js) - Google Analytics