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 相关文章推荐
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
鼠标经过的文本框textbox变色
May 21 Javascript
jquery 实现两级导航菜单附效果图
Mar 07 Javascript
jquery-syntax动态语法着色示例代码
May 14 Javascript
使用js画图之画切线
Jan 12 Javascript
Js 获取、判断浏览器版本信息的简单方法
Aug 08 Javascript
深入学习jQuery中的data()
Dec 22 Javascript
浅谈react 同构之样式直出
Nov 07 Javascript
JavaScript 点击触发复制功能实例详解
Nov 02 Javascript
谈谈为什么你的 JavaScript 代码如此冗长
Jan 30 Javascript
微信小程序多列表渲染数据开关互不影响的实现
Jun 05 Javascript
使用 JavaScript 制作页面效果
Apr 21 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/02 无线电
php中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
限制ckeditor上传图片文件大小的方法
2013/11/15 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
PHP实现的简单适配器模式示例
2017/06/22 PHP
laravel 实现登陆后返回登陆前的页面方法
2019/10/03 PHP
JS 面向对象的5钟写法
2009/07/31 Javascript
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
javascript实现验证IP地址等相关信息代码
2015/05/10 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
2016/11/13 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
angular4中*ngFor不能对返回来的对象进行循环的解决方法
2018/09/12 Javascript
javascript中floor使用方法总结
2019/02/02 Javascript
Angular实现svg和png图片下载实现
2019/05/05 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
js实现详情页放大镜效果
2020/10/28 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
2020/11/26 Vue.js
Python中操作mysql的pymysql模块详解
2016/09/13 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
Python实现matplotlib显示中文的方法详解
2018/02/06 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
性能测试工程师的面试题
2015/02/20 面试题
J2EE系统只能是基于web
2015/09/08 面试题
大学生万能检讨书范例
2014/10/04 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
养成教育主题班会
2015/08/13 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
Vue Element plus使用方法梳理
2022/12/24 Vue.js