JavaScript中的值类型和引用类型
来源:互联网 发布:初级英语听力软件 编辑:程序博客网 时间:2024/05/23 19:14
在各类面向对象语言里面要涉及值类型和引用类型的概念,现在作为JS从业者,原理不能放下,在温习一遍。
JavaScript中的值类型和引用类型
一、拥抱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)值类型理解:变量的交换等于在一个新的地方按照连锁店的规范标准(统一店面理解为相同的变量内容)新开一个分店,这样新开的店与其它旧店互不相关、各自运营。
【值类型例子】
{
var store1='Nike China';
var store2=store1;
store1='Nike U.S.A.';
alert(store2); //Nike China
}
chainStore();
//把一个值类型(也可以叫基本类型)store2传递给另一个变量(赋值)时,其实是分配了一块新的内存空间,因此改变store1的值对store2没有任何影响,因为它不像引用类型,变量的交换其实是交换了指像同一个内容的地址。
(2)引用类型理解:变量的交换等于把现有一间店的钥匙(变量引用地址)复制一把给了另外一个老板,此时两个老板同时管理一间店,两个老板的行为都有可能对一间店的运营造成影响。
【引用类型例子】
{
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 中的引用类型和基本类型(值类型)
- Javascript中的基本类型和引用类型
- JavaScript中的基本类型和引用类型
- javascript中的引用类型 和 普通类型
- JavaScript中的基本类型值和引用类型值区别
- javascript 中的引用类型和值类型,复制与拷贝
- JavaScript中的值类型与引用类型
- JavaScript中的值类型与引用类型
- JavaScript数据类型--值类型和引用类型
- Javascript值类型和引用类型
- JavaScript值类型和引用类型
- JavaScript中的引用类型
- JavaScript中的引用类型
- C#中的值类型和引用类型
- C#中的值类型和引用类型
- C#中的值类型和引用类型
- C# 中的值类型和引用类型
- NSString类的介绍和用法
- JSP的基础语法
- getopt() 与 getopt_long() 详解
- 第三周项目四 顺序表应用(1)
- 第二十一篇:UITableView的基本使用
- JavaScript中的值类型和引用类型
- Scala深入浅出进阶经典 第89讲:Scala中使用For表达式实现内幕思考
- matlab实现简单的if else 的语句
- LeetCode之N-Queens
- NSString字符串长度计算方法
- 记录——《C Primer Plus (第五版)》第八章编程练习第三题
- linux 的产生和发展(非常详细的历史)
- 接口
- 浮动与定位、bfc和ifc