`
夜尽O天明
  • 浏览: 12344 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

JS之举世皆知却众人皆醉的数据类型——null、undefined、NaN

阅读更多

JS之举世皆知却众人皆醉的数据类型——null、undefined、NaN

对于js里面的两个很让人头晕的数据类型:null和undefined,确实很让人分辨不清。因为对于大多数计算机语言,有且仅有一个表示"无"的值,比如,C语言的NULL,Java语言的null,Python语言的None,Ruby语言的nil。但是JavaScript语言中,将一个变量赋值为undefined或null,可以说,几乎没区别。

    var a = undefined;
    var a = null;

 在做比较判定时甚至直接报告两者相等:

undefined == null;
// true

为何js这么不合常理、不和群的有两个表示"无"的值:undefined和null呢,最近才知道,这和 js的历史有关系。1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示"无"的值。根据C语言的传统,null被设计成可以自动转为0。但是,JavaScript的设计者Brendan Eich,觉得这样做还不够,有两个原因。首先,null像在Java里一样,被当成一个对象。但是,JavaScript的数据类型分成原始类型(primitive)和合成类型(complex)两大类,Brendan Eich觉得表示"无"的值最好不是对象。其次,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。Brendan Eich觉得,如果null自动转为0,很不容易发现错误。因此,Brendan Eich又设计了一个undefined。null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

但是,上面这样的区分,在实践中很快就被证明不可行。目前,null和undefined基本是同义的,只有一些细微的差别。现在的常见的用法:

null表示"没有对象",即该处不应该有值。典型用法是:

 

(1) 作为函数的参数,表示该函数的参数不是对象。
(2) 作为对象原型链的终点。
Object.getPrototypeOf(Object.prototype) 
// null 

undefined表示"缺少值",就是此处应该有一个值,但是还没有定义。典型用法是:

(1)变量被声明了,但没有赋值时,就等于undefined。

(2) 调用函数时,应该提供的参数没有提供,该参数等于undefined。

(3)对象没有赋值的属性,该属性的值为undefined。

(4)函数没有返回值时,默认返回undefined。

var i;
i // undefined
function f(x){console.log(x)}
f() // undefined
var  X = new Object();
X.p // undefined
var x = f();
x // undefined

NAN并不是一种数据类型,而是Number类型的一个值。英文的缩写:not a number,意思是说:不是数字。当运算无法返回正确的数值时,就会返回“NaN”值。比如0.0/0.0,求负数的平方跟,都是这样。对于NAN的任何运算,都是NaN,因此,只要运算中出现了一次NaN,那么最终的结果就一定会是NaN。如:NaN+NaN,NaN×0,NaN +1,结果都为NaN。
NaN不但与任何数值不等,而且就算是两个NaN的等值比较,结果也是false。

NaN == NaN
//false

 

分享到:
评论

相关推荐

    关于后世赞美屈原的诗句你举世皆浊我独清的高贵品质.doc

    "举世皆浊我独清"这句诗,正是屈原品格的高度概括,表达了他坚守清白,不与世俗同流合污的崇高精神。 屈原的《离骚》充满了对国家和人民的深切关怀,以及对个人命运的哀怨与抗争。他用诗歌表达了对楚国衰败的痛心,...

    CTO之程序员职业规划

    持"举世皆浊我独清,众人皆醉我独醒"呢? 看完这本书,欣然合页。我似乎为周围 IT 行业的朋友们找到了应对职业发展的有效方 法。这本书为大家找到了一种在浮躁的时代保持从容态度去工作、生活、学习,一步步地实 现...

    asp源码-BS产品销售管理系统-计算机毕业设计源码-计算机毕业设计源代码.rar

    现今飞速发展的网络为公司与带来的便利性举世皆知。更为公司带来广阔的发展空间。宣传,对公司来讲是个不可缺的工具,更是一个无法缺少的纽带,它是连接消费者与服务提供商的桥梁,是业务的来源之力。为了更好的推销...

    渔父课后练习题归纳.pdf

    - (1) 举世皆浊我独清,众人皆醉我独醒,是以见放! —— 世界都污浊了只有我清白,众人都昏醉只有我清醒,因此被流放了! - (2) 安能以皓皓之白,而蒙世俗之尘埃乎! —— 怎么能让洁白的身体去蒙受世俗的尘土呢...

    中考语文复习学案:c03中考语文逐题突破系列——字义篇.doc

    本文将深入探讨“中考语文逐题突破系列——字义篇”中的核心知识点,帮助考生们掌握字义解析的方法和策略。 首先,我们要明白,字义的理解不仅仅是字面意思的把握,更是对词语深层含义的领悟。如题目中提到的第一题...

    第二部分 解读房地产代理——上.docx

    例如,“上海举世国际房地产公司”便是一个成功的案例。该公司通过建立广泛的销售网络,如“新华人世界行销网”,并利用丰富的客户资源和经验丰富的团队,实现了显著的销售业绩。他们总代理的多个房地产项目在短时间...

    “弘扬传统文化,传承民族精神”演讲稿.pdf

    他的坚贞不渝和独立清醒,体现在“举世皆浊我独清,众人皆醉我独醒”的诗句中,展现了不屈不挠的人格魅力。屈原的诗词,不仅是文学的瑰宝,更是民族精神的象征。 端午节的庆祝方式,如龙舟竞渡和吃粽子,既是一种...

    举世皆浊我独清-儒林外史读后感.pdf

    总结而言,《儒林外史》以其独特的艺术魅力和深邃的思想内涵,成为中国古典小说中的经典之作。它不仅为我们呈现了一幅封建社会的历史画卷,更提供了一个反思人性和社会的平台。这部作品的价值,不仅在于文学艺术上的...

    毕业设计,基于ASP+ACCESS开发的药店信息管理系统,内含完整源代码,数据库,开题报告,毕业论文

    现今飞速发展的网络为公司与带来的便利性举世皆知。更为公司带来广阔的发展空间。宣传,对公司来讲是个不可缺的工具,更是一个无法缺少的纽带,它是连接消费者与服务提供商的桥梁,是业务的来源之力。为了更好的推销...

    ASP药店信息管理系统(源代码+参考文献+开题).zip

    现今飞速发展的网络为公司与带来的便利性举世皆知。更为公司带来广阔的发展空间。宣传,对公司来讲是个不可缺的工具,更是一个无法缺少的纽带,它是连接消费者与服务提供商的桥梁,是业务的来源之力。为了更好的推销...

    [计算机毕设]基于asp的药店信息管理系统设计与实现(源代码+项目报告+开题报告).zip

    现今飞速发展的网络为公司与带来的便利性举世皆知。更为公司带来广阔的发展空间。宣传,对公司来讲是个不可缺的工具,更是一个无法缺少的纽带,它是连接消费者与服务提供商的桥梁,是业务的来源之力。为了更好的推销...

    计算机软件毕业设计-药店信息管理系统(源代码+论文+开题报告)-计算机毕业设计源代码.rar

    现今飞速发展的网络为公司与带来的便利性举世皆知。更为公司带来广阔的发展空间。宣传,对公司来讲是个不可缺的工具,更是一个无法缺少的纽带,它是连接消费者与服务提供商的桥梁,是业务的来源之力。为了更好的推销...

    基于ASP的药店信息管理系统(源代码+说明报告+开题报告)

    现今飞速发展的网络为公司与带来的便利性举世皆知。更为公司带来广阔的发展空间。宣传,对公司来讲是个不可缺的工具,更是一个无法缺少的纽带,它是连接消费者与服务提供商的桥梁,是业务的来源之力。为了更好的推销...

    asp药店信息管理系统

    现今飞速发展的网络为公司与带来的便利性举世皆知。更为公司带来广阔的发展空间。宣传,对公司来讲是个不可缺的工具,更是一个无法缺少的纽带,它是连接消费者与服务提供商的桥梁,是业务的来源之力。为了更好的推销...

    大班科学教案:举世无双的建筑师.doc

    它们不仅是天空的舞者,更是筑巢的高手,每一种鸟类都有其独特的筑巢方式和技巧,这正是我们今天要探讨的主题——《大班科学教案:举世无双的建筑师》。本教案旨在让幼儿通过观察和学习,了解鸟类筑巢的多样性,培养...

    【少儿综合素质训练】精选古文经典名句及意思.doc

    5. "举世誉之而不加劝,举世非之而不加沮。"——《庄子・逍遥游》 这句话展示了超脱的心态,无论外界如何评价,都不会因此受到影响。孩子们可以学习到保持独立思考和坚定自我价值的重要性。 6. "吾生也有涯,而知也...

    大班说课:举世无双的建筑师.doc

    【大班说课:举世无双的建筑师】是一篇关于幼儿教育的文档,主要探讨如何通过故事教学来引导大班孩子了解不同鸟类的筑巢方式,培养他们对自然环境和生物的关爱之情。该文档详细阐述了教学设计、目标、方法以及实施...

    初中语文文学讨论现当代文学三角冈的那个屈原

    屈原的诗句“众人皆醉我独醒,举世皆浊我独清”在文中被多次提及,其深刻的内涵不仅是对独立人格的颂扬,也是对高尚品德的追求。屈原的文学作品以其深沉的情感和哲理,不仅影响了当时的社会,更深远地影响了后世的...

    幼儿园教案2021-大班说课:举世无双的建筑师.doc

    幼儿园教案2021-大班说课:举世无双的建筑师.doc

    大班语言教案《举世无双的建筑师》润新教育.txt

    大班语言教案《举世无双的建筑师》润新教育.txt

Global site tag (gtag.js) - Google Analytics