`
zoutuo1986
  • 浏览: 179700 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

JavaScript 中的传值与传址

 
阅读更多

 

copy from 小叉的http://ciaoca.com/#!diary?id=221

-----------------------------------------------------------------------------

前几天看到一道题目,如下:

alert([]!=[])    // true

代码很短,得到的结果却是 true。

  [] 和 [] 两个值看似一样,但是为什么判断它们不相等时却得到 ture 呢?这两天看权指中找到了答案,涉及到 JavaScript 中的传值与传址。

  JavaScript 类型分为 基础类型 和 引用类型,JavaScript 的基本规则是:基本数据类型通过传值来操作,而引用类型通过传址来操作。

  数字和布尔类型属于基本类型,对象属于引用类型,而数组和函数都是对象的特殊类型。因此数组使用的是传址操作,所以在比较时是去判断是否引用为同一个地址。

  通过两个示例来看传值和传址的区别:

// 传值示例 
var a=1var b=a; 
b=2; 
console.log(a);       // 1 
console.log(b);       // 2 
console.log(a==b);    // false 
 
// 传址示例 
var c=[]; 
var d=c; 
d[0]="new"; 
console.log(c);       // ["new"] 
console.log(d);       // ["new"] 
console.log(c==d);    // true

 

附上一张 JavaScript 类型总览(图) 供大家参考:

分享到:
评论

相关推荐

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

    JavaScript中的引用和复制是理解其工作原理的关键概念。在JavaScript中,数据类型分为两大类:基本类型(包括数字、字符串、布尔值、null和undefined)和引用类型(对象、数组和函数)。这两种类型的变量在赋值和...

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

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

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

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

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

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

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

    JavaScript中的变量处理方式是根据数据类型的不同而不同的。在JavaScript中,有两类基本的数据类型:不可变类型(immutable)和可变类型(mutable)。不可变类型包括字符串(String)、数字(Number)、布尔值...

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

    JavaScript 基础知识点总结 ...本文总结了 JavaScript 中的一些基础知识点,包括数据类型、类型转换、作用域、变量提升、传值 VS 传址等。了解这些知识点对于编写高质量的 JavaScript 代码非常重要。

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

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

    JavaScript 面试基础

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

    详解javascript函数的参数

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

Global site tag (gtag.js) - Google Analytics