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 相关文章推荐
List the UTC Time on a Computer
Jun 11 Javascript
extjs fckeditor集成代码
May 10 Javascript
Js nodeType 属性全面解析
Nov 14 Javascript
javascript实现3D切换焦点图
Oct 16 Javascript
跟我学习javascript创建对象(类)的8种方法
Nov 20 Javascript
JavaScript使用键盘输入控制实现数字验证功能
Aug 19 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
May 22 Javascript
Vue隐藏显示、只读实例代码
Jul 18 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
Jan 08 Javascript
Element Badge标记的使用方法
Jul 27 Javascript
vuecli项目构建SSR服务端渲染的实现
Oct 30 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
咖啡产品发展的三大浪潮
2021/03/04 咖啡文化
深入理解PHP之数组(遍历顺序)  Laruence原创
2012/06/13 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
PHP面向对象详解(三)
2015/12/07 PHP
AJAX架构之Dojo篇
2007/04/10 Javascript
JS两个数组比较,删除重复值的巧妙方法(推荐)
2016/06/03 Javascript
微信JSAPI Ticket接口签名详解
2020/06/28 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
jQuery实现表格冻结顶栏效果
2017/08/20 jQuery
微信小程序实现点击图片旋转180度并且弹出下拉列表
2018/11/27 Javascript
详解Vue3.0 前的 TypeScript 最佳入门实践
2019/06/18 Javascript
Vue实现数据表格合并列rowspan效果
2020/11/30 Javascript
layui动态加载多表头的实例
2019/09/05 Javascript
vue实现文字加密功能
2019/09/27 Javascript
python实现文件名批量替换和内容替换
2014/03/20 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
selenium+python实现自动登录脚本
2018/04/22 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
Django 限制访问频率的思路详解
2019/12/24 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
Quiksilver美国官网:始于1969年的优质冲浪服和滑雪板外套
2020/04/20 全球购物
小学生红领巾广播稿
2014/01/21 职场文书
一夜的工作教学反思
2014/02/08 职场文书
幼儿园小班植树节活动方案
2014/03/04 职场文书
代理协议书范本
2014/04/22 职场文书
保密工作目标责任书
2014/07/28 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
周末问候语大全
2015/11/10 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书