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 encodeURI和encodeURIComponent的比较
Apr 03 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
Dec 27 Javascript
使用jQuery清空file文件域的解决方案
Apr 12 Javascript
JQuery打造省市下拉框联动效果
May 18 Javascript
jQuery读取XML文件的方法示例
Feb 03 Javascript
JQuery和html+css实现带小圆点和左右按钮的轮播图实例
Jul 22 jQuery
教你用Cordova打包Vue项目的方法
Oct 17 Javascript
js实现购物车功能
Jun 12 Javascript
axios的拦截请求与响应方法
Aug 11 Javascript
说说如何在Vue.js中实现数字输入组件的方法
Jan 08 Javascript
JavaScript进阶(三)闭包原理与用法详解
May 09 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动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
php查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
自定义min版smarty模板引擎MinSmarty.class.php文件及用法
2016/05/20 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
xml和web特殊字符
2009/04/28 Javascript
JQuery 学习笔记 选择器之一
2009/07/23 Javascript
JavaScript使用HTML5的window.postMessage实现跨域通信例子
2014/04/11 Javascript
jquery中的常用事件bind、hover、toggle等示例介绍
2014/07/21 Javascript
jQuery跨域问题解决方案
2015/08/03 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
浅谈jQuery中Ajax事件beforesend及各参数含义
2016/12/03 Javascript
微信小程序实现image组件图片自适应宽度比例显示的方法
2018/01/16 Javascript
Vue组件之自定义事件的功能图解
2018/02/01 Javascript
jquery实现的分页显示功能示例
2019/08/23 jQuery
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
Python实现将通信达.day文件读取为DataFrame
2018/12/22 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
Python接口自动化测试的实现
2020/08/28 Python
python中zip()函数遍历多个列表方法
2021/02/18 Python
python利用xpath爬取网上数据并存储到django模型中
2021/02/26 Python
使用CSS3实现一个3D相册效果实例
2016/12/03 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
非常详细的C#面试题集
2016/07/13 面试题
房地产财务管理制度
2014/02/02 职场文书
庆元旦迎新年广播稿
2014/02/18 职场文书
民事赔偿协议书
2014/11/02 职场文书
学生党员检讨书范文
2014/12/27 职场文书
2015年实习单位评语
2015/03/25 职场文书
尝试使用Python爬取城市租房信息
2022/04/12 Python
Python循环之while无限迭代
2022/04/30 Python