ECMAScript的介绍

来源:互联网 发布:苹果5可以用移动4g网络吗 编辑:程序博客网 时间:2024/06/05 01:18

     你是否了解ECMAScript?也许你乍看,不认识。其实,只要做过js的同志们,肯定会恍然大悟的。

     一个完整的JavaScript实现由以下3部分组成:核心(ECMAScript), 文档对象模型(DOM),浏览器对象模型(BOM)。


     ECMAScript提供了实现通用程序设计任务必需的JavaScript的语法,运算符和基本对象。
 
    ECMAScript有5种原始类型,即Undefined, Null, Boolean, Number和String。

    Undefined类型:Undefined类型只有一个值,即undefined。当声明的变量未初始化时,改变量的默认值是undefined,即Undefined类型的字面量。

    Null类型:Null类型只有一个专用值null,即它的字面量。值undefined实际上是从值null派生来的,因此ECMAScript把他们定义为相等的。如下:

                             alert(null == undefined);   //outputs  "true"

  尽管这两个值相等,但他们的含义不同,undefined是声明了变量但未对其初始化时赋予该变量的值,null则表示尚未存在的对象,如果函数或方法要返回的是
 对象,那么找不到该对象时,返回的通常是null。

  Boolean类型:Boolean类型有两个值true和false。

  Number类型:Number类型即可以表示32位的整数,还可以表示64位的浮点数。几个特殊值也被定义为Number类型。

  Number.MAX_VALUE和Number.MIN_VALUE定义了Number值集合的外边界。所有ECMAScript数都必须在这两个值之间,不过计算生成的数值结果可以不落在这两个数之间。

   Number.POSITIVE_INFINITY表示无穷大Infinity, Number.NEGATIVE_INFINITY表示负无穷大-Infinity。当计算生成的数大于Number.MAX_VALUE时,它将被赋值       Number.POSITIVE_INFINITY,意味着不再有数字值。同样,生成的数值小于Number.MIN_VALUE的计算也会被赋值Number.NEGATIVE_INFINITY。如果计算返回的是无穷大值,那么生成的结果不能再用于其它计算。由于无穷大数可以是正数也可以是负数,可以对任何数调用isFinit()方法,以确保该数不是无穷大。

NaN表示非数(Not a Number)。NaN是个奇怪的特殊值,一般来说,这种情况发生在类型(String,Boolean等)转换失败时。例如,把单词blue转换成数值就会失败,因为没有与之等价的数值。NaN不能用于算术运算。NaN的另一个奇特之处在于,它与自身不相等,这意味着alert(NaN == NaN)返回的是false。出于这个原因,不推荐使用NaN值本身,使用函数IsNaN()会做的相当好:alert(isNaN("blue"))  返回true。

String类型:它是唯一没有固定大小的原始类型。

typeof运算符检查变量或值的类型,返回下列值之一:(1)undefined:如果变量时Undefined型的。(2)boolean:如果变量时Boolean型的。(3)number:如果变量是Number型的。(4)string:如果变量是String型的。(5)object:如果变量时一种引用类型或Null类型的。

这里需要注意的是:typeof运算符对于null值会返回object类型,这实际上是JavaScript最初实现中的一个错误,然后被ECMAScript沿用了,现在,null被认为是对象的占位符,从而解释了这一矛盾,但从技术上来说,它仍然是原始值。