javascript中的原始值和复杂值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的原始值和复杂值的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-原始值和引用值

JavaScript中原始值和引用值传递

javaScript的引用值和原始值的存放位置

《javascript高级程序设计》学习笔记 | 4.1.原始值与引用值

js 不可变的原始值和可变的对象引用

你根本不会Javascript——类型值和变量