前一天知识点
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() 替换