Javascript中的基本类型和引用类型
2016-06-30 21:46
736 查看
一、基本类型和引用类型概述
js中数据类型的值包括:基本类型值和引用类型值
基本数据类型:undefined;null;boolean;number;string
引用类型值:保存在内存中,js不允许直接访问内存位置,因此时操作引用而不是实际对象
二、如何检测数据类型
1.基本数据类型的检测:使用typeof
` 2.引用类型(对象类型)检测:使用instanceof
3.特殊情况:instanceof检测object始终返回true,检测基本类型的时候始终返回false(因为基本类型不是对象)
typeof检测函数时返回Function,检测正则表达式时返回Object
三、基本类型和引用类型的区别
1.引用类型可以添加属性,基本类型不可以
2.复制时,基本类型是直接复制了一个新的变量,新旧两个变量之间没有关系;
引用类型也复制了新的变量,但这个变量是一个指针,新旧两个指针指向同一个对象
3.函数的参数传递:所有的参数传递原理都是将外部的变量通过复制的方式传递给函数的参数。因此,函数内部对参数的操作对外部原变量无影响
下面分别以参数为基本类型和引用类型为例进行验证:
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
相关文章推荐
- 伪静态----jsp静态化和伪静态化<转载>
- [从codewars学习到的JS系列3]数组filter方法与函数call方法妙用
- 【Javascript】ES6 未完
- Extjs treePanel 加载等待框
- Jackson json 处理全大写或不规范的JSON
- JS实现回到顶部按钮
- [从codewars学习到的JS系列2]正则表达式中的exec()与字符串的match()方法区别
- 解析JSON数据
- Servlet中获得JSP四大作用域的方法
- javaScript的null和undefined
- javascript “||”、“&&”的灵活运用
- 数组json格式的字符串 转 list<Bean>
- JSR 303
- Json 转 dynamic
- 说说JSON和JSONP区别,也许你会豁然开朗(转载)
- jsonp详解详情
- js级联菜单
- JS截字符串处理数字,汉字,英文问题
- jsp理论大串讲
- js字符串和正则表达式中的match、replace、exec等函数详解