首页 > 代码库 > javascript中的原始值和复杂值

javascript中的原始值和复杂值

前面的话

      javascript的数据类型可以分为两种:原始类型(基本类型或者简单类型)和引用类型。

原始类型:Undefined,Null,Boolean,Number,String五种;

引用类型:Object,Array,Function;

与此相对应的,它们的值分别被称为原始值和复杂值。

特性

原始值

       原始值是表示javascript中可用的数据或信息的最底层的形式或者最简单的形式。原始类型的值被称为原始值,因为它们的值是不可被细化的。也就是说,数字是数字,字符串是字符串,布尔值是true和false,Undefined和Null是undefined和null。这些值很简单,不能表示由其他值组成的值。

      原始值明显的特征是不可更改,任何方法无法改变一个原始值。

var s = "hello";
s.toUpperCase();
console.log(s);      //"hello"

复杂值

    复杂值可以有很多种不同类型的javascript对想组成,复杂对象可以包含任何值,而不是一个特定的已知值。

    对象和原始值不同,它们是可变的,它们的值是可以修改的。

var 0 = {x:1};
o.x = 2;
o.y = 3;
console.log(o.x);  // 2;
console.log(o.y);  // 3;

存储方式

  栈存储

  因为原始值占据空间固定,是简单的数据段,为了便于提升变量的查询速度,将其存储在栈(stack)中。

  堆存储

  由于复杂值的大小会发生改变,所以不能将其存放于栈中,否则会降低变量的查询速度,因此存放在堆(hack)中,存储在变量处的值是一个指针,指向存储对象的内存处。

 

 

javascript中的原始值和复杂值