JS中Null与Undefined的区别

更新日期: 2018-12-24阅读量: 1154标签: 类型

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

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

Js中 == 和 === 的区别

两个不同的基本数据类型: 如果两个基本数据类型(string、number)不同,会将它们转化为数据类型,再进行比较。基本数据类型与引用数据类型: 将引用数据类型(function、object,其中object包含array)转化

JS中的布尔 数字 字符串

JS中所有的值都可以转换成布尔类型 使用Boolean()或者 !!(两个感叹号),JS中所有的值都可以转换成数字类型,使用Number()或+。数字类型转换场景目的只有一个,用于计算,将后台传递的数据,从字符串转换为数字并参与计算

js 的隐式转换与显式转换

隐式转换:undefined与null相等,但不恒等(===),一个是number一个是string时,会尝试将string转换为number;显示转换一般指使用Number、String和Boolean三个构造函数,手动将各种类型的值

TS实用工具类型

构造类型Type,并将它所有的属性设置为可选的。它的返回类型表示输入类型的所有子类型。构造类型Type,并将它所有的属性设置为readonly,也就是说构造出的类型的属性不能被再次赋值。

JavaScript 基本数据类型和引用类型的区别详解

前两天看到kraaas大神的关于基本数据类型和引用类型的区别的文章觉得写得非常不错,就想着在其基础上加上自己平时看到的一些知识点和理解,所以就有了以下的文章

js类型检测的几种方式总汇

必须要知道js中关于类型的定义。js中有6种基本类型,null,undefined,boolean,string,number,symbol(es6新增的类型)。还有一种引用类型(复杂类型)是object。像是{},function函数,[]数组都是对象。

JavaScript中的类型检查有点麻烦

检查变量是否包含数组的最佳方法是使用Array.isArray(variable)内置函数。因为undefined是虚值的,所以我们经常直接在条件句中使用它,但这种做法容易出错。更好的选择是使用prop in object来验证属性是否存在。

Typescript内置类型与自定义类型

大家用过 Typescript 都清楚,很多时候我们需要提前声明一个类型,再将类型赋予变量。例如在业务中,我们需要渲染一个表格,往往需要定义:

不同类型值相比较的规则和类型转换、隐式转换

相等运算符(==) 在遇到两个操作数类型不同的时候,要遵守的规则和类型转换 ;如果-个值是null, 另一个是undefined,则它们相等

js数据类型

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

点击更多...

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