javascript中的undefined和null
2016-03-25 19:47
225 查看
预备
Javescript的数据类型分为两大类:原始类型和对象类型。原始类型包括数字,字符串,布尔值;Javascript有两个特殊的原始值:null和undifined。它们不是数字,字符串和布尔值,他们通常代表各自特殊类型的唯一的成员。定义
undefined:表示值的空缺。是预定义的全局变量,不是关键字,它的值就是“未定义”;在JavaScript中,undefined这个词有多重含义.首字母大写的Undefined表示的是一种数据类型,小写的undefined表示的是属于这种数据类型的唯一的一个值.但这两种undefined都只能存在于文档或规范中,不能存在于JavaScript代码中.在JavaScript代码中,你看到的undefined最有可能是全局对象的一个属性,该属性的初始值是就是前面所说的原始值undefined,还有种情况就是,这个undefined是个局部变量,就像其他普通变量一样,没有任何特殊性,它的值不一定是undefined,但通常情况下都是的.下面我们所说的undefined,都指的是window.undefined这个属性.
在ES3中(Firefox4之前),window.undefined就是一个普通的属性,你完全可以把它的值改变成为任意的真值,但在ES5中((Firefox4之后),window.undefined成了一个不可写,不可配置的数据属性,它的值永远是undefined.
一个未初始化的变量的值为undefined,一个没有传入实参的形参变量的值为undefined,如果一个函数什么都不返回,则该函数默认返回undefined.
null:常用来描述“空值”,表示一个特殊值,是关键字。他可以表示数字,字符串或对象是“无值”的。
使用typeof运算符
console.log(typeof null); //"object" console.log(typeof undefined); //"undefined"
两者往往可以互换
“==”会返回true,“===”会返回返回false;转换成bool值时都是false;
他们都不包含任何属性和方法;
用法的不同
转换成数字:undefined值为NaN,而null的值为0;前面所提到的用typeOf运算结果不同;
Undefined 这个值表示变量不含有值,可以通过将变量的值设置为 null 来清空变量。
出现场所
undefined:它是变量的一种取值,表示没有被初始化;对象的属性和数组元素的值不存在时,会返回undefined;函数没有返回值,则会返回undefined;引用没有提供实参的函数形参的值也会是undefined;var x; console.log(x); var obj={}; console.log(obj.x); function xx(xx){ x=0; console.log("xx函数内:"+xx); } console.log("xx函数外:"+xx());
null:Undefined 这个值表示变量不含有值,可以通过将变量的值设置为 null 来清空变量。
内存中 会分2块区域
栈:保存变量的空间
堆:保存数据的空间
每个变量 本身在内存中有一个地址 这个地址里面保存了变量指向的值的内容或者地址(堆的地址)
1. undefined表示未定义的变量;
2. 设置 null 的话 变量对应的地址(堆中)里面的 内容 就清空了 本来 这个变量所在地址 里面保存 了另外一个 数据的地址 现在就没了
欢迎大家纠错和补充
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- 使用C++实现JNI接口需要注意的事项
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- JavaScript演示排序算法
- javascript实现10进制转为N进制数
- 最后一次说说闭包
- Ajax
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法
- Redux系列02:一个炒鸡简单的react+redux例子
- JavaScript 各种遍历方式详解