JavaScript数据结构

动态类型

javascript是一种弱类型(动态语言)。这意味着在使用之前不用声明变量的类型,程序运行时,它的类型会自动确认。

数据类型

ECMAScript中有五种简单的数据类型:undefined,null,boolean,number,string。还有一种复杂数据类型——Object,object本质上是由一组无序的名值对组成的。ECMAScript不支持任何自定义类型的机制,最终所有的值都将是上述6种数据类型之一。

Undefined类型

它的类型只有一个值,即特殊的undefined。在使用var声明变量但为对其加以初始化时,这个变量就是undefined,例如

 

1 var message;
2 
3 alert(message==undefined); //true

 

Null类型

nulll类型是第二个只有一个值的数据结构,这个特殊的值是null.从逻辑角度来看,null值是表示一个空对象指针,而这也正是typeof操作符检测null值时会显示"object"的原因

1 var car=null;
2 alert(typeof car);   //"object"

Boolean类型

它是使用最多的一种类型,该类型只有两个字面值:true和 false。

要将一个值转换为其对应的boolean值,可以调用转型函数Boolean()

var message="hello world";

var messageAsBoolean=Boolean(message);

在这个例子当中,字符串message被转换成了一个Boolean值,该值被保存在messageAsBoolean变量中。可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值。

number类型

根据 ECMAScript 标准,JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(253 -1) 到 253 -1)。它并没有为整数给出一种特定的类型。除了能够表示浮点数外,还有一些带符号的值:+Infinity-InfinityNaN (非数值,Not-a-Number)。

String类型

avaScript的字符串类型用于表示文本数据。它是一组16位的无符号整数值的“元素”。在字符串中的每个元素占据了字符串的位置。第一个元素的索引为0,下一个是索引1,依此类推。字符串的长度是它的元素的数量。

不同于类 C 语言, JavaScript 字符串是不可更改的。这意味着字符串一旦被创建,就不能被修改。但是,可以基于对原始字符串的操作来创建新的字符串。例如:

获取一个字符串的子串可通过选择个别字母或者使用 String.substr().

两个字符串的连接使用连接操作符 (+) 或者 String.concat().

object类型

对象其实就是一组数据与功能的集合。

对象可以通过执行new操作符后跟要创建的对象类名称来创建。例如:

1 var o=new object();

不过仅仅创建object的实例并没有什么用处,因为Object类型所具有的任何属性和方法也同样存在于更具体的对象当中。

Object的每个实例都具有下列属性和方法。

  1.constructor:用于保存用于创建当前对象的函数。对于前面的例子来说,构造函数就是Object().

  2.hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。例如:o.hasOwnProperty("name")

  3.isPrototypeOf(object):用于检查传入的队形是否是传入对象的原型

  4.toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区相对应。

  5.toString():返回对象的字符串表示。

  6。valueOf():返回对象的字符串,数值或者布尔值表示。

 

                                                                   本文参考于javascript高级程序设计(第三版)

posted @ 2015-04-26 01:25  淡然。。。  阅读(809)  评论(0编辑  收藏  举报