关闭

JS中Null与Undefined的区别

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

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

JavaScript隐式类型转换

JavaScript的数据类型是非常弱的(不然不会叫它做弱类型语言了)!在使用算术运算符时,运算符两边的数据类型可以是任意的,比如,一个字符串可以和数字相加

vue-type-check: Vue 模板中的 Typescript 类型检查

越来越多人开始尝试使用 Typescript 编写他们的 Vue 项目,Vue 本身也在不断加强对 Typescript 的支持(官方提供 vue-class-component 库、使用 Typescript 编写 Vue 3.0 等),但是对于组件中模板部分的类型检查仍然有很大的局限性

JS的组成、变量、数据类型

按照相关的Js语法,去操作页面中的元素,有时还要操作浏览器里面的一些功能 ,Js由三部分组成:ECMAScript(ES):描述了该语言的语法和基本对象、DOM(Document Object Model)、BOM(Browser Object Model)

Js之判断数据类型

Javascript 中的数据类型判断其实是一个JavaScript非常基础问题,但不论是日常实际编程过程中和还是面试时,这都是一个非常常见的问题。很多人被问到如何判断一个变量数据类型这个问题时

JavaScript中的类型检查有点麻烦

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

ES6 Set类型

Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。在需要唯一性的场景中,Set使用起来比数组要方便许多,比如添加标签,这个肯定是不重复的,用Set去实现就可以省去重复判断之类的操作,可以专注业务逻辑。

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

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

再也不用担心 JavaScript 的数据类型转换了

JavaScript 是一种弱类型或者说动态类型语言。所以你不用提前声明变量的类型,在程序运行时,类型会被自动确定,你也可以使用同一个变量保存不同类型的数据。

js类型转换的各种玩法

对于object和number、string、boolean之间的转换关系,ToPrimitive是指转换为js内部的原始值,如果是非原始值则转为原始值,调用valueOf()和toString()来实现。

js数据类型转换与字面量

注意区分字面量和标识符之间的区别,比如上面的例子,第一行代码创建了一个变量eg1,它的值为hello,eg1是标识符。通过引号,js可以区分标识符和字面量

点击更多...

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