ECMAScript基础

出自嗶哩嗶哩百科
跳转到: 导航, 搜索

目录

基本特性

ECMAScript的语言特性和Java、C、Perl都有许多相似之处,其中不少特性都是从这些语言借鉴而来,同时它们之间也存在许多差异。下面列举一些ECMAScript的基本特性。

原始数据类型

ECMAScript原始数据类型有五种:undefined、Null、Boolean、Number、String。

数据转换

在不同数据类型之间转换是任何一门编程语言的一个重要特性,ECMAScript提供了一系列简单的方法来实现数据的转换,大多数数据类型都提供了简单的转换方法,对于复杂的转换则有一些全局方法来完成,不管是哪一种方法,ECMAScript中数据转换都非常简单。


Boolean、number和string数据类型是原始数据类型,但它们同时是伪对象,拥有自己的属性和方法,可以通过toString()方法来实现string类型的转换。ECMAScript定义所有的对象,不管是伪对象还是真实的对象,都可以实现toString()方法,string被列为伪对象的行列,自然也拥有toString()方法。将数字类型数据转换为string的时候,可以在 toString() 方法中加入2、8、16参数,来实现不同进制的数据输出,例如var n = 10; trace(n.toString(2))输出为1010,trace(n.toString(8))输出为12,n.toString()和n.toString(10)相同。
ECMAScript提供了两种方法来实现string类型转化为数字类型的方法:parseInt()和parseFloat()。其他类型转换将会返回 NaN(Not a Number)。

操作符和语句

ECMAScript 中大多数操作符、语句和 Java 都比较类似,但也有一些其特有的,如 label 语句, with 语句, for-in 语句等等。

Functions

Functions是ECMAScript的核心,在任何时候任何地方都可以运行的一组代码语句。
 function functionName(arg0, arg1, …… , argN) { 
   statements 
 } 
当function没有返回值或return语句后没有值的时候,该function实际上会被系统定义为undefined,当function返回值的时候,function可以不必明确指定为某种数据类型。

关于重载

重载是面向对象语言的基本特性之一,但 ECMAScript 的 functions 并不能重载,在同一范围里可以定义两个完全相同的函数,在调用函数的时候,最后的一个函数发挥作用。这种特性比较麻烦,但可以通过 arguments 对象来实现和重载类似的功能。
 function func() {
   if (arguments.length == 1 ) {
     trace(arguments[ 0 ] + 5 );
   } else if (arguments.length == 2 ) {
     trace(arguments[ 0 ] + arguments[ 1 ]);
   }
 }
 func( 5 ); /* 输出10 */
 func( 10 , 15 ); /* 输出25 */
前面提到过,在同一范围里可以定义两个完全相同的function,在调用function的时候,最后的一个function发挥作用。
 function func(i) { 
   trace(i + 10 ); 
 } 
 function func(i) { 
   trace(i + 20 ); 
 } 
 func( 5 ); /* 输出25 */
可以看出,是调用了最后的一个function使得数据结果为25,如果使用Function类来定义以上两个函数,那为什么会使用最后的一个function可能会更明确一些。
 var func = new Function(“i”, “alert(i + 10 )”); 
 var func = new Function(“i”, “alert(i + 20 )”); 
 func( 5 ); 
func指向了另外一个引用,从而值发生了改变,func是作为function对象的引用而存在的,并且允许两个变量指向同一个 function。
和Function类相关的属性、方法有许多,例如length、toString()、valueOf()等等。其中toString()在调试程序中使用较多。
个人工具
名字空间
变换
动作
导航
更新
工具箱