ECMAScript提供了实现通用程序设计任务必须的Javascript的语法,运算符和基本对象.
语法
ECMAScript的基本概念如下:
1. 区分大小写.
2. 变量是弱对象类型的.
3. 每行结尾的分号可有可无.
4.注释与Java, C的注释一样.
5.括号表明代码块.
变量
ECMAScript的变量是用var运算符加变量名定义的. ECMAScript并不要求对所有的变量进行声明. 遇到未声明的变量,ECMAScript用它创建一个全局的变量. 对于声明的变量, 也不会进行初始化.
对于变量的命名需要采用一定的规则(Camel标记法mySecondParameter, Pascal标记法MySecondParameter,匈牙利类型标记法sMySecondParameter).
关键字
ECMAScript有25个关键字. 如果错误使用了关键字,那么会报告 Identifier expected.
保留字
保留字有31个.
原始值和应用值
ECMAScript中, 变量可以存放2种类型的值, 即原始值和引用值.
原始值primitive value, 是存放在stack中的简单数据类型, 也就是说它的值是存放在变量的访问位置的.
引用值reference value, 是存储在堆heap中的对象, 也就是说, 存储在变量处的值是一个指针, 指向存储对象的内存处.
为变量赋值时,ECMAScript必须判断该值是原始类型还是引用类型. 要实现这一点, 解释程序需要判断该值是否为ECMAScript的原始类型之一, 即 Undefined, Null, Boolean, Number 和String . 由于这些原始类型占据的空间是固定的, 所以即可将他们存储在较小的内存区域---stack中.这样便于迅速查找变量的值. (String居然是原始类型!)
如果一个值是引用类型的,那么它的存储空间将从堆中分配. 由于引用值的大小会改变, 所以不能把它放在stack中.否则会降低对变量的查询速度.相反, 放在变量的stack空间的值是该对象在堆中的地址. 地址大小是固定的,所以把它存储在stack中对性能无任何负面影响.
原始类型
对于变量的类型判断, 可以通过typeof进行.(typeof对于null值返回的类型是object, 这实际上是javascript最初实现的一个错误, 然后被ECMAScript沿用了. 现在,null被认为是对象的占位符, 从而解释了着一个矛盾)
转换
引用类型
引用类型通常都叫做class, 遇到引用类型时,处理的都是对象。 对象是由new+要实例话的class创建。
运算符
语句
函数
ECMAScript无重载,但可以使用arguments对象避开这种限制。