这篇文章主要介绍了 Javascript 中的基本类型和引用类型的相关资料, 包括基本类型和引用类型的概念及区别,数据类型检测给大家详细介绍了 js 基本类型和引用类型,非常不错,需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
一、基本类型和引用类型概述
js 中数据类型的值包括:基本类型值和引用类型值
基本数据类型:undefined;null;boolean;number;string
引用类型值:保存在内存中,js 不允许直接访问内存位置,因此时操作引用而不是实际对象
二、如何检测数据类型
1. 基本数据类型的检测:使用 typeof
- var s = "AAA";
- alert(typeof s); //返回string
2. 引用类型 (对象类型) 检测:使用 instanceof
- alert(person instanceof Object);
- alert(person instanceof Array);
- alert(person instanceof Regexp);
3. 特殊情况:instanceof 检测 object 始终返回 true,检测基本类型的时候始终返回 false(因为基本类型不是对象)
typeof 检测函数时返回 Function,检测正则表达式时返回 Object
三、基本类型和引用类型的区别
1. 引用类型可以添加属性,基本类型不可以
2. 复制时,基本类型是直接复制了一个新的变量,新旧两个变量之间没有关系;
引用类型也复制了新的变量,但这个变量是一个指针,新旧两个指针指向同一个对象
3. 函数的参数传递:所有的参数传递原理都是将外部的变量通过复制的方式传递给函数的参数。因此,函数内部对参数的操作对外部原变量无影响
下面分别以参数为基本类型和引用类型为例进行验证:
- function addTen(num) {
- num += 10;
- return num;
- }
- var count = 20;
- var result = addTen(count);
- //这里内部对num的操作不会影响外部count的值
- function setName(obj) {
- obj.name = "Nicholas";
- obj = new Object();
- obj.name = "Greg";
- }
- var person = new Object();
- setName(person);
- alert(person.name); //返回"Nicholas",说明仍然不影响外部的person对象的name
以上所述是小编给大家介绍的再谈 Javascript 中的基本类型和引用类型 (推荐) ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 phperz 网站的支持!
来源: http://www.phperz.com/article/17/0303/264495.html