JS中Null与Undefined的区别

时间: 2018-12-24阅读: 1057标签: 类型

JavaScript中存在这样两种原始类型:Null与Undefined。这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined?

Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。


var oValue;  
alert(oValue == undefined); //output "true"  

这段代码显示为true,代表oVlaue的值即为undefined,因为我们没有初始化它。


js 代码
alert(null == document.getElementById(‘notExistElement‘));  

当页面上不存在id为"notExistElement"的DOM节点时,这段代码显示为"true",因为我们尝试获取一个不存在的对象。


js 代码
alert(typeof undefined); //output "undefined"  
alert(typeof null); //output "object"  

第一行代码很容易理解,undefined的类型为Undefined;第二行代码却让人疑惑,为什么null的类型又是Object了呢?其实这是JavaScript最初实现的一个错误,后来被ECMAScript沿用下来。在今天我们可以解释为,null即是一个不存在的对象的占位符,但是在实际编码时还是要注意这一特性。


js 代码
alert(null == undefined); //output "true"  

ECMAScript认为undefined是从null派生出来的,所以把它们定义为相等的。但是,如果在一些情况下,我们一定要区分这两个值,那应该怎么办呢?可以使用下面的两种方法。


js 代码
alert(null === undefined); //output "false"  
alert(typeof null == typeof undefined); //output "false"  

使用typeof方法在前面已经讲过,null与undefined的类型是不一样的,所以输出"false"。而===代表绝对等于,在这里null === undefined输出false。


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/1689

Symbol 类型

根据规范,对象的属性键只能是 String 类型或者 Symbol 类型。不是 Number,也不是 Boolean,只有 String 或 Symbol 这两种类型。到目前为止,我们只见过 String。现在我们来看看 Symbol 能给我们带来什么好处。

js判断数据类型

ECMAScript 变量包含两种不同的数据类型的值:基本类型值和引用类型值 。 基本数据类型指的是简单的数据段,而引用数据类型指那些可能有多个值组成的对

JS数据类型转换表

下表显示了将不同的JavaScript值转换为Number,String和Boolean的结果:注意:引号(\\\"\\\")中的值表示字符串值。在红色的值是程序员可能不希望被转换为的值。

JavaScript数据类型

JavaScript区别于其他编程语言(如Java、C等),在定义变量时无需指定特定的数据类型(如数值、字符串等),使用var就能定义所有数据类型的变量,因为在程序运行期间,会自动判断变量的具体数据类型。

js数据类型

数据类型指的就是字面量的类型。js有6种数据类型:String 字符串、Number 数值、 Boolean 布尔值、Null 空值、Undefined 未定义、Object 对象。

Js中=相等符号的隐形转换

ECMAScript提供两组操作符: 相等和不相等(先转换再比较),全等和不全等(仅比较而不转换);相等(==)和不相等(!=)这两个操作符都会先转换操作数(通常称为强制转型),然后再比较它们的相等性。

ES6中的新数据类型:Symbol

今天和大家来聊一聊es6中新增的一个原始数据类型Symbol。在es5中原始数据类型(基本数据类型)有以下六种:Undefind、Null、Bool、 String、Number、Object

JavaScript中的类型转换

稍微有点基础的同学,应该一眼就能看出 [] == [] 输出 false,因为 Object 是引用类型,两个引用类型做 == 比较,如果它们引用的是同一个地址,输出 true,否则输出 false。但是后面几道题可能会有一点点麻烦。

js安全类型检测

都知道js内置的类型检测,大多数情况下是不太可靠的,例如: typeof 、 instanceof ;typeof 返回一个未经计算的操作数的类型, 可以发现所有对象都是返回object (null是空指针即空对象)

Js引用类型和函数进阶

值类型即基本数据类型,包括数值类型 number、布尔类型 boolean、字符串 string、null和undefined;引用类型即复合数据类型,包括对象 object、数组 array和函数 function

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!