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 相关文章推荐
jQuery.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
UserData用法总结 lanyu出品
Jul 01 Javascript
Js组件的一些写法
Sep 10 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
js限制文本框只能输入整数或者带小数点的数字
Apr 27 Javascript
js实现仿阿里巴巴城市选择框效果实例
Jun 24 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(同步显示图像位置信息)
Dec 02 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
详解Vue SSR( Vue2 + Koa2 + Webpack4)配置指南
Nov 13 Javascript
JavaScript获取某一天所在的星期
Sep 05 Javascript
Vue快速实现通用表单验证的方法
Feb 24 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使用fgetcsv读取csv文件出现乱码的解决方法
2014/11/08 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
php脚本守护进程原理与实现方法详解
2017/07/20 PHP
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
2015/08/25 Javascript
JS表单验证的代码(常用)
2016/04/08 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
纯js实现的积木(div层)拖动功能示例
2017/07/19 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
实现vuex原理的示例
2020/10/21 Javascript
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
Django stark组件使用及原理详解
2019/08/22 Python
Django shell调试models输出的SQL语句方法
2019/08/29 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
python读取raw binary图片并提取统计信息的实例
2020/01/09 Python
Python编程快速上手——PDF文件操作案例分析
2020/02/28 Python
Python类的绑定方法和非绑定方法实例解析
2020/03/04 Python
MATLAB数学建模之画图汇总
2020/07/16 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
W Concept美国:精选全球独立设计师
2017/02/22 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
教师工作证明范本
2015/06/12 职场文书
政审证明范文
2015/06/19 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
靠谱准确的求职信
2019/04/02 职场文书