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 相关文章推荐
前台js调用后台方法示例
Dec 02 Javascript
JavaScript 面向对象与原型
Apr 10 Javascript
jQuery关键词说明插件cluetip使用指南
Apr 21 Javascript
jQuery打字效果实现方法(附demo源码下载)
Dec 18 Javascript
JavaScript常用正则函数用法示例
Jan 23 Javascript
从parcel.js打包出错到选择nvm的全部过程
Jan 23 Javascript
vue中使用cropperjs的方法
Mar 01 Javascript
如何在JavaScript中优雅的提取循环内数据详解
Mar 04 Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
微信小程序如何获取地址
Dec 24 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
插件导致ECharts被全量引入的坑示例解析
Sep 23 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
模仿OSO的论坛(四)
2006/10/09 PHP
两个强悍的php 图像处理类1
2009/06/15 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
php读取出一个文件夹及其子文件夹下所有文件的方法示例
2017/06/15 PHP
javascript的数组和常用函数详解
2014/05/09 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
详解Angularjs filter过滤器
2016/02/06 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
基于AngularJS实现表单验证功能
2017/07/28 Javascript
Angular.js初始化之ng-app的自动绑定与手动绑定详解
2017/07/31 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
JavaScript继承定义与用法实践分析
2018/05/28 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
跟老齐学Python之重回函数
2014/10/10 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
浅谈解除装饰器作用(python3新增)
2018/10/15 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
2019/04/15 Python
python3获取url文件大小示例代码
2019/09/18 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
不假外出检讨书
2014/01/27 职场文书
《长江之歌》教学反思
2014/04/17 职场文书
村干部群众路线整改措施思想汇报
2014/10/12 职场文书
2015年教研组工作总结
2015/05/04 职场文书
宾馆卫生管理制度
2015/08/06 职场文书
一封真诚的自荐信帮你赢得机会
2019/05/07 职场文书
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python
Python中的tkinter库简单案例详解
2022/01/22 Python
世界十大狙击步枪排行榜
2022/03/20 杂记