前一天知识点 1 数组 定义和长度的改变 遍历 for 、for in 、for of 常用方法 拼接数组 concat 案例:数组拼接 数组拼接成字符串 join(’’) 案例:字符串拼接 删除 pop() shift() splice() 新增 push unshift splice()多个 插入 splice(索引,删除的个数设为0) 注意:搞一个新的数组,把原数组前面的值push进去,然后push要插入的值,最后把原数组后面的值再push进去。 排序 sort 反向 reverse 查找 indexOf includes lastIndexOf some 注意:some里面是回调函数 截取 slice 2 案例 排序 冒泡 每相邻的两个值都要比较 i i+1 选择 永远拿一个值和其他所有值作比较 j i(i = j + 1)
Array.isArray arguments 实参的数组 案例: 随机取出数组里面的某一个值
去重 方法一:indexof 判断新数组是否存在 方法二:那一个固定的值与其他的每一个都做比较 ,有重复就删除 数组塌陷
===================================================== 上午: 1、函数自调用 回调函数 2、数组的扩展方法(迭代方法:里面都是回调函数) every() some() filter 数组 forEach 遍历 没有返回值 map 遍历操作数据 归并方法:reduce 三个参数,经过对数据的操作,得到一个值 【例如:求和】
下午: 1 字符串定义方式2种方式【重点】 直接定义:var str = ‘avd’; .通过构造函数 var str1 = newString(‘df4fgb’); 字符串属性 1)length 只能获取 不能赋值 注意:不能通过length来改变字符串的长度(数组的话既能获取 又能赋值 ) 2 索引 注意:字符串不能通过索引来改变字符串的长度 需用通过+来拼接字符串
2 字符串的常用方法 str.charAt() 通过【索引找到对应的值】 str.charCodeAt 通过【索引找到字符 unicode 编码】: String.fromCharCode 将【unicode码转为对应的字符】 str.toUpperCase() 字母转大写 str.toLowerCase() 字母转小写 indexOf() 如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1。 注意:除了数字跟布尔类型 字符串都是要加引号 lastIndexOf() 最后一次出现的 slice(start,end) 【索引】 concat() 拼接字符串 也可以拼接数组 substring(0,2) 开始的索引 结束的索引截掉 【前闭后开】 跟slice一样的
substring() 类似于 slice()。 不同之处在于 substring() 无法接受负的索引。
substr**(索引,截取的个数**) trim() 去掉字符串【首尾的空格中间的不会去掉 split() 根据分割符切割 【字符串转为数组】 replace() 替换【只能替换第一个·】
3、字符串的遍历 for、for in、for of 【注意:for in、for of都是用来遍历数组跟对象,而字符串也是对象,所以可以用for in、for of】
3对象的定义方式------非常重要 第一种字面量:var obj = { } 第二种调用系统函数:var obj = new Object(); 第三种自定义构造函数:var per =new Person(); 案例 1、自己尝试封装数组方法 2、排序(必须掌握) 3、数组产生随机数(必须掌握) 4、数组的遍历:for/forin/for of/ for each 注意for each是数组专用方法 没有返回值 4-1 深拷贝(值,你有一本书我有一本书)、浅拷贝(地址 2个人共用一本书) 4-2 值传递和引用传递(引用传递就是浅拷贝) 案例:arguments实参构成的数组 封装concat方法(未知数组的长度 这里用的是arguments) 5、统计重复出现的字符次数)(字符串) 6、去重 (数组跟字符串) 7、验证码
字符串案例: 1、屏蔽关键字 2、截取文件后缀名(常用) 3、验证码(数组变为字符串):最少保留一位数字 4、字符串去重 5、字符串统计重复出现的字符次数
1、函数自调用 回调函数
一、 函数的自调用 一般用匿名函数!! (function (n){ console.log(1) }) () 二、回调函数:在一个函数里面,函数作为形参使用 function fn(ran){ var ran = Math.round(Math.random()*10); return ran; } function new1(aa){ //这里的aa是个函数 var res = aa; console.log(res); } new1(fn()); //第一种调用随机数 new1(function fn(n){ var ran = Math.round(Math.random()*n); return ran; }(8)) //(8)传了参数 第二种调用2、数组的扩展方法(迭代方法:里面都是回调函数)
arr = [1, 2, 3, 4, 5]; // 一、every 判断数据里面的每一条数据是否都满足条件 --- 判断 var res = arr.every(function (val, i) { return val > 2 }) console.log(res) //flase // 二、some 判断是否有符合条件的数据 --- 判断 var res = arr.some(function (val, i) { return val > 2 }) console.log(res) //true // 三、filter 返回满足条件的数据形成的新的数组 -- 返回的是数据 var res = arr.filter(function (val, i) { return val > 20 }) console.log(res) //[]空数组 // 四、foreach遍历每一个数据 ---- 没有返回值 --- 不能写返回值,写了也没用 var arr = [1, 2, 3, 4, 5]; var sum = 0; arr.forEach(function (val, i) { sum += val; }) console.log(sum); //15 //五、 map 操作数据里面的每一个数据 --- 改变数组里面的数据 var arr = [1, 2, 3, 4, 5]; var sum = 1; arr.map(function (val, i) { sum *= val }) console.log(sum); //120 //六、 reduce var res = arr.reduce(function (sum, val, i) { return (sum + val) }) console.log(res);2 字符串的常用方法
str.charAt() 通过【索引找到对应的值】 str.charCodeAt 通过【索引找到字符 unicode 编码】: String.fromCharCode 将【unicode码转为对应的字符】 str.toUpperCase() 字母转大写 str.toLowerCase() 字母转小写 indexOf() 如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1。 注意:除了数字跟布尔类型 字符串都是要加引号 lastIndexOf() 最后一次出现的 slice(start,end) 【索引】 concat() 拼接字符串 也可以拼接数组 substring(0,2) 开始的索引 结束的索引截掉 【前闭后开】 跟slice一样的 substring() 类似于 slice()。 不同之处在于 substring() 无法接受负的索引。 substr(索引,截取的个数) trim() 去掉字符串首尾的空格 中间的不会去掉 split() 根据逗号进行切割 【字符串转为数组】字符串切割成数组 replace() 替换