循环绑定的变量污染:
在进行事件循环变量绑定时,由于函数体内部代码并未执行,在绑定结束后,调用函数时,赋予的部分变量失去意义,
解决方案:给页面元素添加一个任意属性
事件与已有的函数进行绑定:只需要将函数地址绑定给事件,事件绑定完成将会有系统在特定情况下自动触发
对象(字典)的增删改查:
对象元素格式为字符串,key默认为字符串类型
可以使用.访问属性:dict.sb;
dict.sa="SB";
当对象拥有sa属性时,表现为更改sa属性的值,当对象没有sa属性时,表现为增加sa属性并赋值
使用delete方法删除对象属性:delete dict.sa;
js对象可以随意添加属性
Math类的方法:
abs()绝对值
max()为参数中的最大值
random()方法返回[0,1)之间的数;
得到任意区间的正整数[m,n];
function rand(m,n){
return parseInt(Math.random() * (m-n+1)) + min;
}
字符串操作:
var sb = "sbsbbs"
1.指定索引下的字符:
sb.charAt(n);
2.判断元素是否存在字符串中:-1位不存在,其他为在字符串中的索引
sindexOf('s');返回的是第一个检索到的元素的位置
s.lastIndexOf('b');返回值为最后一次出现的索引位置
3.替换:
var sbnm = s.replace("s","ABS");
由于字符串为不可变类型,因此替换将得到一个新字符串,需要接受返回值
4.裁剪:slice(m,n);意为从索引m开始截取到索引n之前
同样得到的是新字符串
5.拆分数组
var sss = sb.split(' ');使用空格切分字符串
数组操作:
arr = [1,2,3,4,5]
1.反转:
arr.reverse();
将数组元素转换
2.排序:
arr.sort();(可能按照ascii码值排序)
3.判断元素是否存在(-1表示不存在,其他为该元素索引)
arr.indexOf(5);
4.拼接成字符串:(join方法得到的是字符串)
var ss = arr.join('@');
5.过滤器(只保留符合条件的结果)
var newArr = arr.filter(function (ele){//回调函数的回调次数由数组元素的个数决定
//filter回调三个参数:ele.index,sourcerr
if(ele 条件表达式){
return true;//满足过滤条件返回true
}
return false;//不满足过滤条件返回false
})
满足条件的元素自动添加到新数组中
过滤器原理:
arr.filter (fn){
var newArr = [ ];
for (var i=0;i<this.length;i++){
var res = fn(this.[i],i,this);
if (res == true){
newArr.push(this[i]);
}
return newArr;
}
数组查询
arr[index]//根据索引
修改:
arr[index]=m;//重新赋值
增加:
从末尾添加:push(m);
从首尾添加:unshift(m);
删除:
pop();从末尾删除
shift():删除首位
splice(begin,length,else);
var arr = [1,2,3,4,5]
begin为开始索引,length为操作数据长度,else为替换的数据(可省略)
使用splice方法增加:即将操作长度置0,且可以在指定位置添加多个数据
如:arr.splice(0,0,1,2,3)表示在数组首位添加三个元素
替换:即为将length置为1或其他,else后跟替换的数据删除即为将else置空