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自定义事件及事件交互原理概述(一)
Feb 01 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
Aug 16 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
Sep 25 Javascript
在JavaScript的正则表达式中使用exec()方法
Jun 16 Javascript
分享Javascript实用方法二
Dec 13 Javascript
JQuery.dataTables表格插件添加跳转到指定页
Jun 09 jQuery
Vue全家桶实践项目总结(推荐)
Nov 04 Javascript
vue页面切换到滚动页面显示顶部的实例
Mar 13 Javascript
JavaScript选择排序算法原理与实现方法示例
Aug 06 Javascript
如何在Vue中抽离接口配置文件
Oct 31 Javascript
浅谈vue的第一个commit分析
Jun 08 Javascript
vue @click.native 绑定原生点击事件
Apr 22 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
PHP集成FCK的函数代码
2008/09/27 PHP
php学习之流程控制实现代码
2011/06/09 PHP
php获取系统变量方法小结
2015/05/29 PHP
PHP微信开发用Cache 解决数据缓存
2016/07/11 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
javascript判断用户浏览器插件安装情况的代码
2011/01/01 Javascript
jquery焦点图片切换(数字标注/手动/自动播放/横向滚动)
2013/01/24 Javascript
jQuery实现可以控制图片旋转角度效果(附demo源码下载)
2016/01/27 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
js 显示日期时间的实例(时间过一秒加1)
2017/10/25 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
Python使用logging模块实现打印log到指定文件的方法
2018/09/05 Python
Python+OpenCV感兴趣区域ROI提取方法
2019/01/10 Python
python使用phoenixdb操作hbase的方法示例
2019/02/28 Python
Python从列表推导到zip()函数的5种技巧总结
2019/10/23 Python
Python模块相关知识点小结
2020/03/09 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
美国休闲服装品牌:Express
2016/09/24 全球购物
Hawes & Curtis澳大利亚官网:英国经典服饰品牌
2018/10/29 全球购物
size?法国官网:英国伦敦的球鞋精品店
2020/03/15 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
大学班长的职责
2014/01/27 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
高中同学会活动方案
2014/08/14 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python