ActionScript3基础语法-变量类型

版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/blues1021。 https://blog.csdn.net/Blues1021/article/details/74906708

package  {
	import flash.display.MovieClip;
	
	public class HelloWorld extends MovieClip {
		public function HelloWorld() {
			// constructor code
			trace("Hello World ActionScript3.0 Language!");
			 AS3VarType();
		}
		
		// AS3 一切类型都是面向对象的,基类都是Object
		public function AS3VarType()
		{
			// 基础类型是值类型,是不变对象,发生改变会生成一个新的,应该是存储在栈中的不变对象
			// 当没有引用指向该变量的时候,变量和它所指向的内存会被AVM回收掉
			// 布尔类型
			var isTrue:Boolean = true;
			
			// 整型
			var aNum:int  = 10;
			var bigNum:uint = 10000;
			// 浮点数
			var floatValue:Number = 10.105;
			
			// 字符串类型,都是Unicode字符串,没有char类型
			var str:String = "珠珠 爱 吃饭";
			var strLen:int = str.length;
			// 输出7,这里的length是具体字符的个数,不是字节数,也不包含末尾的\0
			trace("strLen value:" + strLen); 
			
			// 复杂类型和自定义类型都是引用类型,new创建,堆存放
			// 常用复杂数据类型
			// 数组存放的类型可以不同,但是一般存放相同类型,存放是值或引用的类型元素
			var arr:Array;
			// 多维数组实例
			var sample2:Array = new Array(new Array(1,2,3), new Array(4,5,6), new
			Array(7,8,9));
			trace ("multiArray sample:" + sample2[2][1]);
			var date:Date;
			var err:Error;
			var funObj:Function;
			
			var regExp:RegExp;
			var xml:XML;
			var xmlList:XMLList;
			// 自定义的Class类
				
			// const类型,const修饰值类型保证值类型不能修改,修饰引用类型只是保证引用地址不变
			const cNum:int = 10;
			const cArr:Array = [1,2];
			var bArr:Array = cArr;
			bArr[0] = 10;
			trace("bArr value:" + bArr);
			
			// 数据类型的转换
			// 小数转换为整数需要Math.round()来修正
			
			// 对象可以new创建,可以用.或[]访问,或新增成员
			var objTest:Object = new Object();
			var objTest2:Object = {};
			var objTest3:Object = {name1:"sam", name2:"sandy", func1:function()
			{trace("sam & sandy");}
			};
			trace("objtest:" + objTest3.name2);
			objTest3.func1();
			// 非密封类可以动态添加成员
			objTest3.chesName = "岑家源";
			objTest3["age"] = 29;
			trace("objTest:" + objTest3.chesName);
			trace("objTest:" + objTest3["age"]);
			
			var strToNum:String = "a12.3";
			// 转换失败的判断
			if( !(Number(strToNum)) )
			{
				var ainum:int = 3;
				ainum = ainum + 10;
			}
			// 转换失败不能用该判断
			/*if(Number(strToNum) == NaN)
			{
				var ainum:int = 3;
				ainum = ainum + 10;
			}
			*/
/*AS不支持用户自定义的运算符重载。
=,==,!=,!==可以作用于所有数据类型,对于复杂数据类型而言,运算符的操作对象是引用,而不是对象值本身。
String对象虽然是基本数据类型,但是和数值类型是有区别的。
*/

// 全等运算符===和==运算符的区别,全等不会进行类型转换,==在比较不同类型时候会转换
// Number类型==运算会比较值,引用类型比较时候会采用引用首地址比较。

/*
typeof返回字符串形式的类型名。
is和as都是判断一个对象是否属于一种类型,is返回true或false, as返回该对象的值或null。
in判断一个对象是否作为一个对象的key或索引。
*/
		// delete在as3中只能删除动态增加的属性
		// 如果要删除对象,将该对象赋值为null即可,和js其实一样的。
		delete objTest3.chesName;
		trace("obj delete dynamic property:" + objTest3.chesName);

		}


	}
	
}

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页