JavaScript的undefined与null、NaN的区别

Javascript的数据类型

  在JavaScript中,有三种住数据类型、两种复合数据类型和两种特殊数据类型。

1.主数据类型(基元数据类型)

  • 字符串

   String数据类型:

    字符串值是一个由零个或者多个Unicode字符组成的链表。使用字符串数据类型表示JavaScript中的文本。在脚本中包含字符串,方法是使用单引号或者双引号将其括起来。被单引号引起的字符串内可以包含双引号,而被双引号引起的字符串可以包括单引号。z在JavaScript中没有表示单个字符的类型。若要表示JavaScript中的单个字符,可以创建仅由一个字符组成的字符串。包含字符("")的字符串是空(零长度)字符串。在JavaScript中可以包含字符串中的转义序列,用来创建不能直接键入的字符串(转义符:\)。

例如:    

var str ="hello 'word' ";
var str1 ='hello "word"';

 

  • 数字

  Number数据类型:

    在JavaScript中,整数值和浮点值之间没有区别:JavaScript数字可以是两种类型中的任意一种,在内部JavaScript作为浮点数表示所有的数字。

  注意:

    在JavaScript包含具有特殊值的数字:  

      ●NaN(不是数字)。当对不适当的数据(例如字符串或者未定义值)执行数学运算时使用该值。

      ●正无穷大,当一个正数太大以至于在JavaScript中无法表示时,可使用该值。

      ●负无穷大。当一个负数太大以至于在JavaScript中无法表示时,可使用该值。

      ●正0和负0.JavaScript区分正零和负零。

  • Boolean

   虽然字符串和数字类型实际上可以有无限多个不同的值,但是布尔值数据类型只能有两个值。他们是true和false。     

2.复合数据类型(引用数据类型)

  • Object
  • 数组

3.特定数据类型(特殊数据类型)

  • Null

    null数据类型在JavaScript中仅具有一个值:null。null关键字不能用作函数或者变量名称。包含null的变量不包含有效的数字、字符串、布尔值、数组或者对象。通过为变量赋值null值可以清除变量的内容,但是不删除变量。在JavaScript中的typeof运算符将null值报告为Object类型而不是null类型。

  • 未定义(undefined)

    如果使用的对象属性不存在或者使用的是已声明但是未赋值的变量,返回的是undefined值。您可以通过将变量与undefined进行比较来确定变量是否存在也可以通过将变量类型与字符串“undefined”进行比较来确定。

总结:

  在JavaScript中,null是一种特殊的object类型,NaN是一种特殊的number类型,未定义的值或者定义未赋值的变量为undefined。

  

  null是关键字;undefined是Global对象的一个属性。

  null是对象(空对象,没有任何属性和方法);undefined是undefined类型的值。

  null等值(==)于undefined,但是null不全等(===)于undefined。

  

  在运算时,null于undefined都可以被类型转换为false,但是他们不等值于false。

  

posted @ 2016-08-05 17:45  聆听的风声  阅读(318)  评论(0编辑  收藏  举报