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和DOM Interfaces来处理HTML
Oct 09 Javascript
用javascript动态调整iframe高度的方法
Mar 06 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
May 26 Javascript
JavaScript中的Array对象使用说明
Jan 17 Javascript
使用JavaScript进行进制转换将字符串转换为十进制
Sep 21 Javascript
pace.js页面加载进度条插件
Sep 29 Javascript
非常棒的jQuery图片轮播效果
Apr 17 Javascript
Vue.js 2.0 移动端拍照压缩图片预览及上传实例
Apr 27 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
layui table设置某一行的字体颜色方法
Sep 05 Javascript
vue打开子组件弹窗都刷新功能的实现
Sep 21 Javascript
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
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
织梦模板标记简介
2007/03/11 PHP
浅谈PHP中new self()和new static()的区别
2017/08/11 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
jQuery对html元素取值与赋值的方法
2013/11/20 Javascript
用json方式实现在 js 中建立一个map
2014/05/02 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
jquery中实现时间戳与日期相互转换
2016/04/12 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
Angular2使用Angular CLI快速搭建工程(一)
2017/05/21 Javascript
angular2 ng2 @input和@output理解及示例
2017/10/10 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
vue如何判断dom的class
2018/04/26 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
Vue.js 父子组件通信的十种方式
2018/10/30 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
剖析Python的Twisted框架的核心特性
2016/05/25 Python
浅谈python中的getattr函数 hasattr函数
2016/06/14 Python
Django返回json数据用法示例
2016/09/18 Python
Python装饰器用法示例小结
2018/02/11 Python
使用Python将Mysql的查询数据导出到文件的方法
2019/02/25 Python
Python运行DLL文件的方法
2020/01/17 Python
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
Champs Sports加拿大:北美最大的以商场为基础的专业运动鞋和服装零售商之一
2018/05/01 全球购物
速卖通欧盟:Aliexpress EU
2020/08/19 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
教师专业自荐书范文
2014/02/10 职场文书
工作收入证明模板
2014/10/10 职场文书
给下属加薪申请报告
2015/05/15 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Win11如何修改dns?Win11修改dns图文教程
2022/01/18 数码科技