1、类型声明——在标识符后面用一个冒号(:)来定义后面跟的是它的数据类型或类对象。
var maVar:Number
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre code_snippet_id="1658807" snippet_file_name="blog_20160423_2_9270245" name="code" class="java">2、区分大小写——同名但大小写不同认为是不同的
3、点语法——当要定义属性和方法的访问、继承、对象显示以及XML父子继承是要使用.方法
myClass.myPro = "hello";4、注释——单行注释//和块注释/**/
/**这部分是块注释只有这些部分才能够被ASDoc工具识别而创建在线文档
*
*/
5、括号——用于重组从操作优先到用户优先的表达式顺序6、变量可以通过省略类型或者使用*号声明为无类型:
var myNum:Number;
var myVar;
Var myVar:*;
7、3类原生数据类型:基本数据类型、特殊数据类型和复杂数据类型。
基本数据类型包括:Boolean、Number、int、uint、String
特殊数据类型包括:Null、void
void 数据类型只包含未定义的值,是所有无类型对象的默认值,而且它通常用做方法声明的返回类型的注释。
复杂类型包括:Object、Array、Date、Error、Function、RegExp、XML、XMLList
8、数字型
Number数字型代表浮点型 ,最大值最小值Number.MAX_VALUE和Number.MIN_VALUE
int整形代表整数
uint无符号整形代表无符号整数
NaN(非数字)作为数字变量的默认值使用,它代表应该返回的结果是一个数字,但返回的是其它的结果。
Infinity和-Infinity值用来代表被0除的操作
9、String 内部存储为Unicode UTF-16格式,未定义的字符串是一个空值,但和空字符串“”是不同的。和java类似
10、Array 无类型且有数组访问运算符[]定义的零索引列表元素。数组被认为是动态的,因为数组中的元素数量可以再运行时进行操作
3种方法声明:
①var myArray:Array = new Array();//使用构造函数,然后单独分配各个元素的值
myArray[0] = true;
myArray[1] = 43;
myArray[2] = "hello";
②使用构造函数,然后用以个数组文本来分配值
var mArray:Array = new Array([true,43,"hello"]);
③使用一个简单的数组文本: var myArray: Array = [true,43,"hello"];
var arr:Array = [];
关联数组可以通过一个字符型关键字而不是无符号整数作为数组中的访问操作符来创建:
var myArray: Array = new Array();
myArray["key1"] = true;
11、向量 比数组有更高的运行效率,是稀疏数组,其所包含的元素只能被定义为相同的数据类型,并在实例化对象是使用后缀类型参数的语法(.<>)声明对象。
向量也是一个密集型数组,所有元素必须有一个值。如果向量为空,则该值必须为null
也可以声明向量为一个静态数组(固定大小)var daysIfTheWeek:Vector.<String> = new Vector.<String>(7,true);
12、对象
三种不同的方法声明
①使用构造函数,然后单独分配元素的值:
var myObj:Object = new Object();
myObj.var1 = true;
myObj.var2 = 43;
myObj.var3 = "hello";
②使用构造函数,然后使用对象文本来分配值:
var myObj:Object = new Object({var1:true, var2:43, var3: "hello"});
③使用简单的数组文本,可以简写:
var myObj:Object = {var1:true, var2: 43, var3:"hello"};
var abj:Object = {};
13、 类型转换
①隐式转换 var obj:Object = new Object(); var cls : SomeClass = new SomeClass(); cls = obj;
②显示转换 类型(表达式)
14、as 运算符
用来评定一个特定的数据类型的表达式转换是否成功,如果成功,则返回原表达式。 表达式 as 类型 当类型转换失败时,它会返回一个null值,而不是返回一个运行时错误。
例子:将一个Flax 组件向上转型为一种通用的DisplayObject类型: var parent:DisplayObject = rootApp.parent as DisPlayObject;
15、 自检
in is instanceof typeof for...in for each ... in
①in : 用来判定属性是否为对象的一部分: var obj:Object = {prop:true}; trace("prop" in obj); //result: true
②is :用来判定对象是否属于一个特定的数据类型或类。 if(event is SecurityErrorEvent){trace("Security Error");}
③instanceof :功能类似is ,除 用来判断某个特殊对象的原型链(这相对于继承链是次要的)是否包含该类的原型这个功能。该运算符是为了向后兼容原型的ActionScript的早期版本而引入的。
is 运算符是作用于接口的,但instanceof 运算符却不作用于接口,因为接口不是原型链的一部分:instanceof已经废弃不再使用
④typeof : 用来计算表达式并返回一个指定表达式的数据类型的字符串,返回值可能是以下6中类型的一种:boolean、function、number、object、string和xml。都是小写的。如果不再其他列出的数据类型的类中,那么返回object。向后兼容,若需要一个对象特定的类型或类标志,可使用flash.utils.getQualifuedClassName()方法。
⑤for...in :在数组中通过对象或元素动态属性进行遍历。
例子:通过对象的值进行遍历:
var myFruit:Object = [apple:2, pear:0, plum:3];
for(var prop:String in myFruit){
trace("I have " + myFruit[prop] +" "+ prop+"s.");
}
⑥ for each ...in :用于对集合中的项进行遍历,可以是对象中的属性,数组中的元素,XML或者XMLList对象中的标记。
var myNums :Array = ["one" , "two" , "three"];
for each (var item:* in myNums){
trace(item);
}