AS3面试题理解
来源:互联网 发布:android编译源码刷机 编辑:程序博客网 时间:2024/05/17 04:52
现在as3面试 感觉就那几个题目来回考。
有了题库,大家都看了 都答上来了 题目本身也就失去了考核的意义。
而且题目本身也有很多偏的(不常用的)在考。
真正的面试官现在肯定也不会把笔试成绩当作标准。
所谓:行家一出手 就知有没有。多聊聊技术环节便可鉴定。
=========================================
Null NaN undefined的区别
string array object的默认值是Null
Number 默认值是NaN
NaN 值是 Number 数据类型的特殊成员,用来表示“非数字”值。
未定义类型的 :undefined
示例: var s:String;
trace(s);//null 未赋值的String类型的默认值null
var n:Number;
trace(n);//NaN Number类型默认值NaN
var h;
trace(h);//未定义类型 undefined
isNaN(n:Number=null):Boolean
- 如果该值为
NaN
(非数字),则返回true
。isNaN()
函数可用于检查一个数学表达式是否成功地计算为一个数字。
var s:String="a";
trace(isNaN(Number(s)));//是非数字 值。返回true
NaN==NaN false;
NaN!=NaN true;
获取一个点的全局坐标,点所属于的Displayobject为dis
var gP:Point=dis.parent.localToGlobal(new Point(dis.x,dis.y));
获取一个DisplayObject的localX 和 localY转换成全局坐标
var gP:Point=dis.parent.localToGlobal(new Point(dis.x+e.localX,dis.y+e.localY));
总结:求点P的全局坐标。那么就是 p所属的DisplayObject的parent来转化
String的slice(start,end);
substring(start,end);
substr(start,len)
三者都是获取子串的功能。都不会影响原始字符串。
slice(start,end);//可以简单理解为从start处 到end 砍下来。下刀处在end那 end被砍坏了。所以只留下start 到end前面的
必须start要小于end的位置 否则返回空白
start end 都可以为负数
substring(start,end);//和slice相似。但它会自动的把参数大的 给end 参数小的给start
start 和 end都不能为负数。否则会当作0
如果start<end那么slice和substring是没有任何区别的
var str:String="0123456789";trace(str.subString(1,6));//12345
trace(str.subString(6,1));//12345
另:最后一个字符的索引也可以是-1 。倒数第二个则是-2。start 不可以为负数
in 是用来判断 数组里含有 某个索引 或者Object Dictionary含有某个键。不是含有某个值
var ary:Array=["1","2","5","4"];
trace("3" in ary);//true
trace(3 in ary);//true
trace("5" in ary);//true
trace(5 in ary);//true
var obj:Object={3:333,name:"kkkk"};
trace("name" in obj);
trace(3 in obj);
trace("3" in obj);
以上示例说明 in 在判断的时候 会自动的把 参数转换成需要的类型。
XX in Array 则 XX会转为int
XX in Object则XX会转为string
break和continue(他们行下面的代码被忽略)
break直接中断结束整个for循环
continue只跳过当前一次循环。
数组的浅复制、深复制
var ary:Array=[1,"abc",{name:"dd",age:33}];var copy:Array=ary.slice();copy[0]=2;copy[1]="newabc";copy[2].name="newName";trace(ary[0],ary[1],ary[2].name,ary[2].age);trace(copy[0],copy[1],copy[2].name,copy[2].age);
上述是数组浅复制。数组通过slice()或contact()不传入任何参数。则返回数组的浅复制。
浅复制:对于数组的值类型对象直接复制到新数组里,对于引用则共同引用。
即当副本修改的是负责数据类型后,原数组的复杂类型数据也会相应变化。
但简单类型各自维护。
对于数组里的元素都是值类型对象则不区分浅复制和深复制。
深复制:其所有的元素都会得到真正的复制,此时数组存储的是不同的引用。
实现要通过ByteArray
var ary:Array=[1,"abc",{name:"dd",age:33}]; var byteAry:ByteArray=new ByteArray(); byteAry.writeObject(ary); byteAry.position=0; var newAry:Array=byteAry.readObject() as Array; newAry[0]=2; newAry[1]="def"; newAry[2].name="newABC"; newAry[2].age=44; trace(ary[0],ary[1],ary[2].name,ary[2].age); trace(newAry[0],newAry[1],newAry[2].name,newAry[2].age);
内存泄漏
http://blog.sina.com.cn/s/blog_63f4be9b01012hsc.html
转载来自 http://www.cnblogs.com/naiking/p/3492130.html
- AS3面试题理解
- 一道AS3数据结构面试题
- AS3 面试题4 替换空格
- 一个VB2005的面试题的理解
- 面试题之 c语言 union 理解
- 对一道算法面试题的理解
- 多线程原理分析面试题理解
- 理解java多态的面试题
- 深入理解"指针"之面试题解析
- 从一道面试题理解双重指针
- 面试题之java的理解
- 经典面试题:HTTP协议理解
- 类 String理解和经典面试题,
- 面试题:HTML语义化的理解
- AS3 面试题35 在一个字符串中找出第一个只出现一次的字符
- AS3理解Stage
- AS3 事件冒泡理解
- 从一些公司面试题分析理解分析未来情况
- HDU1064(简单题)
- HttpHelper类使用方法
- oracle三对内存参数间关系之3AMM启动和关闭两种情况下ASMM机制涉及的一对参数间的关系探讨
- R语言与数据分析之三:分类算法2
- hello world
- AS3面试题理解
- 给终端来点彩色(c语言和Golang版)
- 《JSP实用教程(第2版)/耿祥义》错误之非必要导入包
- C# 实现的MSSQL 访问类(MSSQLHelper)
- android app获取手机soc频率
- 线程同步
- Linux - 其他重要设置
- WCF之SOA
- 解决ORA-12518的办法