收藏 分销(赏)

js教程(高级4).doc

上传人:精*** 文档编号:9762409 上传时间:2025-04-06 格式:DOC 页数:2 大小:15.50KB 下载积分:5 金币
下载 相关 举报
js教程(高级4).doc_第1页
第1页 / 共2页
js教程(高级4).doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
  复制、传递和比较数据   在 JScript 中,对数据的处理取决于该数据的类型。   按值和按引用的比较   Numbers 和 Boolean 类型的值 (true 和 false) 是按值来复制、传递和比较的。当按值复制或传递时,将在计算机内存中分配一块空间并将原值复制到其中。然后,即使更改原来的值,也不会影响所复制的值(反过来也一样),因为这两个值是独立的实体。   对象、数组以及函数是按引用来复制、传递和比较的。 当按地址复制或传递时,实际是创建一个指向原始项的指针,然后就像拷贝一样来使用该指针。如果随后更改原始项,则将同时更改原始项和复制项(反过来也一样)。实际上只有一个实体;“复本”并不是一个真正的复本,而只是该数据的又一个引用。   当按引用比较时,要想比较成功,两个变量必须参照完全相同的实体。例如,两个不同的 Array 对象即使包含相同的元素也将比较为不相等。要想比较成功,其中一个变量必须为另一个的参考。要想检查两个数组是否包含了相同的元素,比较 toString() 方法的结果。   最后,字符串是按引用复制和传递的,但是是按值来比较的。请注意,假如有两个 String 对象(用 new String("something") 创建的),按引用比较它们,但是,如果其中一个或者两者都是字符串值的话,按值比较它们。   注意 鉴于 ASCII和 ANSI 字符集的构造方法,按序列顺序大写字母位于小写字母的前面。例如 "Zoo" 小于 "aardvark"。如果想执行不区分大小写的匹配,可以对两个字符串调用 toUpperCase() 或 toLowerCase()。   传递参数给函数   按值传递一个参数给函数就是制作该参数的一个独立复本,即一个只存在于该函数内的复本。即使按引用传递对象和数组时,如果直接在函数中用新值覆盖原先的值,在函数外并不反映新值。只有在对象的属性或者数组的元素改变时,在函数外才可以看出。   例如(使用 IE 对象模式):   // 本代码段破坏(覆盖)其参数,所以   // 调用代码中反映不出变化。   function Clobber(param)   {   // 破坏参数;在调用代码中   // 看不到。   param = new Object();   param.message = "This will not work";   }   // 本段代码改变参数的属性,   // 在调用代码中可看到属性改变。   function Update(param)   {   // 改变对象的属性;   // 可从调用代码中看到改变。   param.message = "I was changed";   }   // 创建一个对象,并赋给一个属性。   var obj = new Object();   obj.message = "This is the original";   // 调用 Clobber,并输出 obj.message。注意,它没有发生变化。   Clobber(obj);   window.alert(obj.message); // 仍然显示 "This is the original"。   // 调用 Update,并输出 obj.message。注意,它已经被改变了。   Update(obj);   window.alert(obj.message); // 显示 "I was changed"。   检验数据   当按值进行检验时,是比较两个截然不同的项以查看它们是否相等。通常,该比较是逐字节进行的。当按引用进行检验时,是看这两项是否是指向同一个原始项的指针。如果是,则比较结果是相等;如果不是,即使它们每个字节都包含完全一样的值,比较结果也为不相等。   按引用复制和传递字符串能节约内存;但是由于在字符串被创建后不能进行更改,因此可以按值进行比较。这样可以检查两个字符串是否包含相同的内容,即使它们是完全独立产生的。   更多信息请查看IT技术专栏   
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服