`
JAVAPOWER
  • 浏览: 46594 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript 数据类型

阅读更多
1. 在 ECMAScript 中,变量可以存储两种类型的值,即原始值和引用值。原始值存储在栈(Stack)中的简单数据段,它们的值直接存储在变量访问的位置;引用值,存储的是存储在堆中对象的引用,也就是说它是一个指针,指向存储对象的内存出。内存模型如下图所示:



2. 在 ECMAScript 中有五种原始数据类型,即:Undefined、Null、Boolean、Number 和 String 型。这些原始数据类型所占的数据空间是固定的。如果一个值是引用类型,那么它指向的内存空间是在堆中分配的。注意, String 类型在 ECMAScript 中属于原始数据类型,不同于 Java。

3. 可通过 typeof 运算来判断一个变量或值的类型,此运算返回下列结果之一: “undefined”、“boolean”、“number” 和 “Object”。其实返回的值是跟五种原始数据类型对应。仔细观察会发现原始数据类型有五种,而这里只返回四中结果,发现没有 Null 型对应的值。
    注意,如果是 null 值,那么返回的是 “object”。据说这是最初 JavaScript 设计的一个错误,后来被 ECMAScript 沿用了。现在 null 被认为是对象占位符,从而解析了改矛盾,从技术上讲,它仍是原始值。

4. Undefined 类型
    Undefined 类型只有一个值 undefined。当声明一个变量未初始化时,该变量的默认值是 undefined。
    注意,undefined 不等于未定义的值,undefined 是声明了但未赋值,而未定义是从来就没有声明过的值,但是 typeof 不真正区分这两种值。未声明的变量只能用于 typeof 运算,其它所有运算只能是已声明的变量。已声明的 undefined 值的变量可以用于其它运算。

5. Null 类型
    Null 类型也是只有一个值 null。值 undefined 是从 null 派生而来,因此 ECMAScript 把它们定义为相等,即 null == undefined 返回 true。
    尽管这两个值相等,但是它们的含义不同,undefined 是声明变量但未对其初始化时赋予的值,而 null 表示尚未存在的对象

6. Boolean 类型
    Boolean 类型只有两个值 true 和 false。

7. Number 类型
    可以以任何的基表示一个数值,但是所有的数学运算返回的都是十进制的结果。
    Number 类型还有几个特殊值。其中 Number.MAX_VALUE 和 Number.MIN_VALUE 定义了 Number 类型数值集合的边界。所有 ECMAScript 数值都在这两者之间,但是运算结果可以不落在这两者之间。
    当计算的值大于 Number.MAX_VALUE 时将返回 Number.POSITIVE_INFINITY,意味着不再有数字值。一样地,当计算的值小于 Number.MIN_VALUE 时将返回 Number.NEGATIVE_INFINITY,一样意味着不再有数字值。

8. String 类型
    ECMAScript 中 String 类型也属于原始类型,它是唯一没有固定大小的原始类型。
    String 类型还包括几种类型字符字面量,如下图所示:

   
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics