%:取余的时候,如果有小数,然后不是整数倍,有可能得到的不是预期的结果。原因:与运算精度有关系
例子:13.1%5 得到3.0999...6,而不是3.1
6.2%3.1 得到0,没有问题
==判断:值类型的数据,判断的是值是否相等。引用类型的,判断的是引用是否相同。java和c#里始终判断的是引用是否相同,nan和任何值都不相等,哪怕它本身
===判断:在==的基础上,加入了类型判断,类型完全一样才有可能为true
>判断:当运算符一边的运算对象是值类型,另一边非数值时,先转换成值类型,然后判断。如果无法转换,始终为false。
函数:两种声明方式:表达式声明,常用的声明,函数参数数组arguments.callee持有当前函数的引用
函数使用小技巧:可以根据参数,来确定到底调用哪个函数。
例:
var fun:Function; var sex:String ="male"; if("male" == sex) { fun = maleFunc; }else{ fun = femaleFunc; } fun(); function maleFunc(){ trace("male"); } function femaleFunc(){ trace("female"); }
循环:不能goto标签,可以continue和break标签
密封类比动态类效率高,也避免了新增动态属性命名冲突的风险。
3种访问子元素的方式:
①getchildat,访问速度最快,效率最高
②getchildbyname,通过链接列表来查询,效率低。如果重名,返回第一个查找到的同名对象(递归查找)
③getobjectunderpoint,往往涉及到碰撞检测、鼠标动作等具体应用时才用到。(递归查找)【如果显示对象是从其它域中载入的,没有使用security.allowdomain(),是无法使用此方法访问的,可先使用areInaccessibleObjectsUnderPoint判断是否有这样不可访问的显示对象】
数组的splice方法中,如果是数组.splice(删除点索引)===删除数组中某位置之后的几个元素
数组slice返回值不包括终点索引的元素,如果起点索引大于终点索引,会返回一个空数组
数组.sort();//默认排序方式
数组.sort(排序方式);//使用"排序方式"排序
数组.sort(比较函数);//使用比较函数排序
数组.sortOn("name");//根据指定属性,默认排序
数组.sortOn("name",排序方式);//根据指定属性,使用指定的"排序方式"排序
数组.sortOn("name",比较函数);//根据指定属性,使用自定义函数比较排序
数组排序方式常量
Array.CASEINSENSITIVE大小写不敏感按字母顺序排序
Array.DESCENDING字母倒序排序
Array.NUMERIC从小到大排序
Array.RETURNINDEXEDARRAY返回排序后的索引列表
Array.UNIQUESORT唯一性排序,比较结果相同,放弃排序
charAt()访问目标位置的字符
charCodeAt()得到目标位置字符的unicode值
fromCharCode()从指定的unicode值得到相应的字符串
hasEventListener和willTrigger区别:
如果时间发送者处于显示列表上,那么willTrigger不但检查该显示对象上的侦听器,还会检查该显示列表对象在事件流所有阶段中的所有父级上的侦听器
事件对象不一定都能冒泡:①事件本身是否支持冒泡,true则支持,默认为false②如果事件发生的对象不再显示列表上不能冒泡