js中的值类型和引用类型小结 文字说明与实例


Posted in Javascript onDecember 12, 2010

一、拥抱JavaScript

曾经名不经传的JavaScript随着AJAX的流行而身价倍增,现在JavaScript不再仅仅是WEB开发中一个可有可无的辅助工具,甚至有了专门属于它的职位“JavaScript工程师”,那怕你仅仅是一名WEB后台开发程序员,你都必须了解JavaScript,至少在一些相关招聘职位要求上你可以看到“熟悉JavaScript优先”的字眼。甚至我还要告诉你,你将可以用JavaScript开发桌面软件,这得益于Adobe AIR的另外一种开发模式,即用HTML+CSS+JavaScript开发AIR。

二、值类型和引用类型话题
随着部分有大型面向对象语言基础朋友的介入,他们试着用JavaScript去模拟面像对象的各种特征,尽管有些模拟显得较为牵强,但也让我们见识到了JavaScript的强大与灵活性。本文暂不探讨JavaScript面向对象编程技术。就讲讲JavaScript中的两种变量类型:即值类型和引用类型,这通常又会让你联想到“堆栈”,另外还有“引用地址”或“指针”相关概念,有过Java或C#编程经验的人相信对这两种类型不陌生。下面就举例讲一下这两种类型在JavaScript中的体现、用法及注意事项。

三、JavaScript值类型和引用类型有哪些

(1)值类型:数值、布尔值、null、undefined。

(2)引用类型:对象、数组、函数。

四、如何理解值类型和引用类型及举例

我们可以用“连锁店”和“连锁店钥匙”来理解,不知道以下比喻合不合适,^-^。

(1)值类型理解:变量的交换等于在一个新的地方按照连锁店的规范标准(统一店面理解为相同的变量内容)新开一个分店,这样新开的店与其它旧店互不相关、各自运营。

【值类型例子】

function chainStore() 
{ 
var store1='Nike China'; 
var store2=store1; 
store1='Nike U.S.A.'; 
alert(store2); //Nike China 
} 
chainStore(); 
//把一个值类型(也可以叫基本类型)store2传递给另一个变量(赋值)时,其实是分配了一块新的内存空间,因此改变store1的值对store2没有任何影响,因为它不像引用类型,变量的交换其实是交换了指像同一个内容的地址。

(2)引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。

【引用类型例子】

function chainStore() 
{ 
var store1=['Nike China']; 
var store2=store1; 
alert(store2[0]); //Nike China 
store1[0]='Nike U.S.A.'; 
alert(store2[0]); //Nike U.S.A. 
} 
chainStore(); 
//在上面的代码中,store2只进行了一次赋值,理论上它的值已定,但后面通过改写store1的值,发现store2的值也发生了改变,这正是引用类型的特征,也是我们要注意的地方。
Javascript 相关文章推荐
如何用javascript判断录入的日期是否合法
Jan 08 Javascript
img的onload的另类用法
Jan 10 Javascript
日期 时间js控件
May 07 Javascript
Javascript remove 自定义数组删除方法
Oct 20 Javascript
简单实用的全选反选按钮例子
Oct 18 Javascript
jquery+php随机生成红包金额数量代码分享
Aug 27 Javascript
JavaScript多图片上传案例
Sep 28 Javascript
AngularJs自定义服务之实现签名和加密
Aug 02 Javascript
domReady的实现案例
Nov 23 Javascript
微信小程序 scroll-view组件实现列表页实例代码
Dec 14 Javascript
解决vue 表格table列求和的问题
Nov 06 Javascript
一文帮你理解PReact10.5.13源码
Apr 03 Javascript
JS俄罗斯方块,包含完整的设计理念
Dec 11 #Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
Dec 11 #Javascript
JavaScript下利用fso判断文件是否存在的代码
Dec 11 #Javascript
jQuery ul标签下拉菜单演示代码
Dec 11 #Javascript
基于jquery的修改当前TAB显示标题的代码
Dec 11 #Javascript
Wordpress ThickBox 添加“查看原图”效果代码
Dec 11 #Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
Dec 11 #Javascript
You might like
用PHP读取RSS feed的代码
2008/08/01 PHP
使用php判断网页是否gzip压缩
2013/06/25 PHP
PHP中单引号与双引号的区别分析
2014/08/19 PHP
PHP结合Redis+MySQL实现冷热数据交换应用案例详解
2019/07/09 PHP
超级兔子让浮动层消失的前因后果
2007/03/09 Javascript
js 操作select和option常用代码整理
2012/12/13 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
浅谈Javascript线程及定时机制
2015/07/02 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
10 种最常见的 Javascript 错误(频率最高)
2018/02/08 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
JavaScript定时器使用方法详解
2020/03/26 Javascript
利用Vue的v-for和v-bind实现列表颜色切换
2020/07/17 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
python实现批量下载新浪博客的方法
2015/06/15 Python
Python 常用string函数详解
2016/05/30 Python
一个基于flask的web应用诞生 记录用户账户登录状态(6)
2017/04/11 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
NOTINO英国:在线购买美容和香水
2020/02/25 全球购物
2014年元旦感言
2014/03/06 职场文书
陈安之励志演讲稿
2014/08/21 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
佛光寺导游词
2015/02/10 职场文书
2016新党章学习心得体会
2016/01/15 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
企业管理制度设计时要注意的几种“常见病”!
2019/04/19 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
关于JavaScript轮播图的实现
2021/11/20 Javascript