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
,-Infinity
和 NaN
(非数值,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高级程序设计(第三版)