js中值引用和地址引用实例分析

本文实例讲述了js中值引用和地址引用。分享给大家供大家参考,具体如下:

js中任何事务都是对象。包括基本数据类型(undefined,boolean,number,string,null)。

对象只是拥有属性和方法的特殊数据类型。

基本数据类型也是对象

var a = "hello";
var b = "hello";

既然是对象,那么它默认拥有属性和方法

a.length 长度属性
a.toUpperCase() 把字符串a编程大写的方法

a==b,因为是按照 值进行比较 的

js中的内置对象

1、String
2、Array
3、Date
4、RegExp
5、Number
6、Math

var a = new String("123");
var b = new String("123");
alert(a==b); //结果返回false

那么问题来了,自定义对象不是 按值比较的?

总结:基本数据类型是值比较,非基本数据类型比对的内存地址。

var a = new Object();
a.price = 173;
var b = a;
b.price = 170; //b更改了属性值,a的属性值一起会被改变
alert(a.price); //输出170

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《javascript面向对象入门教程》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

(0)

相关推荐

  • 浅谈JavaScript 函数参数传递到底是值传递还是引用传递

    在传统的观念里,都认为JavaScript函数传递的是引用传递(也称之为指针传递),也有人认为是值传递和引用传递都具备.那么JS的参数传递到底是怎么回事呢?事实上以下的演示也完全可以用于Java 首先来一个比较简单的,基本类型的传递: function add(num){ num+=10; return num; } num=10; alert(add(num)); aelrt(num); //输出20,10 对于这里的输出20,10,按照JS的官方解释就是在基本类型参数传递的时候,做了一件复制

  • js中判断Object、Array、Function等引用类型对象是否相等

    在迭代中,我们还要注意的是,对象或者数组中的元素可能是一个任意值--除了原始类型值.object.arrray外,这个值还可能是一个方法.一个DOM对象或者window对象,可能你已经注意到了,有部分引用类型是不能进行迭代的,需要分支判断,代码如下: 复制代码 代码如下: function compare(a,b){ var pt = /undefined|number|string|boolean/, fn = /^(function\s*)(\w*\b)/, cr = "constructo

  • javascript引用对象的方法代码

    同一页面内的引用方法: 1.使用id: link1.href 2.使用name: document.all.link1.href 3.使用sourseIndex: document.all(4).href //注意,前面还有HTML.HEAD.TITLE和BODY,所以是4 4.使用链接集合: document.anchors(0).href //全部的集合有all.anchors.applets.areas.attributes.behaviorUrns.bookmarks. boundEle

  • js函数的引用, 关于内存的开销

    请看如下代码: 复制代码 代码如下: var arr = []; var cc = function(){alert('xx');}; for(var i = 0; i<2; i++){ arr[i] = function(){alert('yy');} arr[i+10] = cc; } console.group('开始') console.group('1') console.info( arr[0] == arr[1]); console.info( arr[0] === arr[1])

  • JavaScript对象参数的引用传递

    今天碰到一个问题,怎样把参数变更影响到函数外部,如: <script> var myname = "wood"; A(myname); document.write(myname); function A(n) { n = "Yao"; } </script> 输出结果还是wood,说明当myname传入A函数后,在函数体内,相当于有一个myname的副本,这个副本的值等于myname,之后在函数体内对其做的操作是在这个副本上进行的. 但情况

  • JavaScript对象引用与赋值实例详解

    本文实例讲述了JavaScript对象引用与赋值.分享给大家供大家参考,具体如下: <script type="text/javascript"> //例子一: 引用 var myArrayRef = new Array(0,1,2); //创建数组对象 var mySeconArrayRef = myArrayRef; // 对象复制. myArrayRef[0] = 100; // 修改元素值 alert(mySeconArrayRef[0]); /** * 输出 10

  • JavaScript 类的定义和引用 JavaScript高级培训 自定义对象

    一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascript中,已经存在一些标准的类,例如Date.Array.RegExp.String.Math.Number等等,这为我们编程提供了许多方便.但对于复杂的客户端程序而言,这些还远远不够. 与Java不同,Java2提供给我们的标准类很多,基本上满足了我们的编程需求,但是Javascript提供的标准类很

  • Javascript学习笔记之 函数篇(三) : 闭包和引用

    Javascript 中一个最重要的特性就是闭包的使用.因为闭包的使用,当前作用域总可以访问外部的作用域.因为 Javascript 没有块级作用域,只有函数作用域,所以闭包的使用与函数是紧密相关的. 模拟私有变量 复制代码 代码如下: function Counter(start) {     var count = start;     return {         increment: function() {             count++;         },      

  • Js从头学起(基本数据类型和引用类型的参数传递详细分析)

    1.基本数据类型传递参数: 复制代码 代码如下: funciton addTen(num){ num+=10; return num; } var count=20; var result=addTen(count); alert(count);//20 alert(resullt);//30 执行结果是:20和30.在这段代码中,将变量count当做参数传递给了函数addTen,也就是相当于将变量count的值复制给了函数addTen的参数.这时addTen的参数num可以看做是函数内部的一个

  • javascript引用对象的方法

    <a id="link1" name="link1" href="http://bbs.51js.com/">51js</a> ============= 同一页面内的引用方法: 1.使用id: link1.href 2.使用name: document.all.link1.href 3.使用sourseIndex: document.all(4).href //注意,前面还有HTML.HEAD.TITLE和BODY,所以

  • 菜鸟学习JavaScript小实验之函数引用

    复制代码 代码如下: function tt() { alert(11); } var b = tt; var b1 = tt(); //执行tt()函数功能 对于函数的引用,可直接将函数名"tt"赋给变量,但不可以是函数名+括号的形式"tt()",因为第二种是直接执行该函数. 调用函数的时候,用变量名+括号的形式,如:b(). 复制代码 代码如下: function tt() { alert(11); } var b = tt; alert(b); functio

随机推荐