前端第八天

循环绑定的变量污染:

在进行事件循环变量绑定时,由于函数体内部代码并未执行,在绑定结束后,调用函数时,赋予的部分变量失去意义,

解决方案:给页面元素添加一个任意属性

事件与已有的函数进行绑定:只需要将函数地址绑定给事件,事件绑定完成将会有系统在特定情况下自动触发

对象(字典)的增删改查:

对象元素格式为字符串,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置空

原文地址:https://www.cnblogs.com/suncunxu/p/10315645.html