4.2 ECMAScript 概述

下面的内容是 ECMAScript 不规范的概述——不是该语言被描述的所有部分。同时这个概述也不是完全标准的一部分。

ECMAScript 是基于对象的:基本的语言和宿主功能都是对象所提供的,并且 ECMAScript 程序也是相互交流的对象的一个集群(cluster)。在 ECMAScript, 中,对象(object) 是零个或多个属性(properties)的集合,而每个特性(attributes)都决定了每个属性如何被使用——例如,一个属性的可写入的特性(Writable attribute)被设置为 false,任何企图分配给属性不同的值的 ECMAScript 代码被执行时都会失败。属性是一个包含了其他对象、原始值或函数的容器。原始值是下列内置类型的成员之一:UndefinedNullBooleanNumberString Symbol;一个对象实例是内置类型 Object 的成员;并且一个函数也能被称为一个对象。如果函数是作为一个对象的属性,那么该函数就被称为方法(method)。

ECMAScript 定义了一个内置对象的集合,其中包含了 ECMAScript 的实例(entities)。这些内置的对象包含在全局对象(global object)中;对象是语言运行时语义的基础,包括了ObjectFunctionBooleanSymbol 以及各种 Error 对象;表示和操作数值的对象包括了 MathNumberDate;文本处理对象有 String RegExp;具有索引值的集合对象包括了 Array 和九种不同类型的类型数组,其元素都具有特定的数值数据表示;键集合包含了 Map Set 对象;支持结构化数据的对象是 JSON 对象,ArrayBuffer

DataView;支持抽象控制的对象包括 generator 函数和 Promise 对象;反射对象则包含了 ProxyReflect

ECMAScript 也定义了一套内置的运算符(operators 。ECMAScript 运算符包括各种各样的一元运算符、乘法运算符、加法运算符和按位异或运算符、关联运算符、等号运算符、二进制按位运算符、二进制逻辑运算符、赋值运算符和逗号运算符。

大型 ECMAScript 程序都被模块(modules)支持,目的是允许程序被分成多个语句和声明序列。每个模块显式地标识它使用的需要由其他模块提供的声明,以及它的哪些声明可供其他模块使用。

ECMAScript 语法有意的模仿 Java 的语法。但对 ECMAScript 语法的放宽(relexed)能够使其成为易于使用的脚本语言。例如,变量不需要显式的声明类型,也不用将类型与属性相关联,并且调用被定义的函数之前也不要求显式的进行文本(textually)声明。

results matching ""

    No results matching ""