一.数组的操作
1.创建数组
数组的定义
1.使用系统内置的Array() 创建一个数组
var arr = new Array();
2.直接定义
var arr=['a','b'];
2.索引操作 可以修改可以添加 可以查询
原数组没有就添加,有就修改
arr[0]='A';
arr[2]='c';
arr[10]='o';
console.log(arr[9]);
console.log(arr);
3.内置方法
1.push() 从尾部添加 会改变原数组
console.log(arr);
arr.push('c','d');
console.log(arr);
2.pop() 弹出数组中最后一个元素 会改变原数组 有返回值 将弹出后的元素返回
console.log(arr);
var res = arr.pop();
console.log(res);
3.Unshift() 行前面插入元素 会改变原数组
arr.unshift('A','B');
console.log(arr);
arr.unshift('C');
console.log(arr);
4.Shift() 从前面删除第一个元素 会改变原数组 有返回值 将删除后的元素返回
console.log(arr);
var res = arr.shift();
console.log(res);
5.Splice() 通过索引操作的内置方法 splice() 会修改原数组 将删除后元素 组成的新数组返回
如果只传一个参数是从哪个索引值开始删 删到最后
如果传二个参数 第二个参数代表删除几个
如果传了三个或者更多的参数 从第三个参数开始作为被替换的元素插入到数组当中
console.log(arr);
var res = arr.splice(1,2,5,6);
console.log(res);
二.数学对象
1.Math.abs() 绝对值
console.log(Math.abs(-10));
2.Math.floor() 向下取整
console.log(Math.floor(1.9));
3.Math.ceil() 向上取整
console.log(Math.ceil(1.1));
4.Math.round() 四舍五入
console.log(Math.round(1.5));
5.Math.max 最大值
console.log(Math.max(1,10,30,-40));
6.Math.min 最小值
console.log(Math.min(-4,10,32));
7.Math.random() 0-1之间的随机数
console.log(Math.random());
结果如下:
封装函数 取n-m之间随机整数
function rand(n,m){
return Math.floor(Math.random()*(m-n+1))+n;
}
三.定时器
一般情况下,定时器用来完成动画效果
定时器不会阻塞程序执行,并行执行的 返回一个数字为定时器的标识
1.单次定时器 setTimeout()
启动一个单次定时器 等待指定时间 执行一次指定的函数
格式: setTimeout(函数,等待时间值)
var flag = setTimeout(function(){
a++;
console.log('我是单次定时器',a);
},3000);
console.log(a,'我是a');
console.log(flag);
2.多次定时(循环定时器) setInterval()
var flag1 = setInterval(function(){
a++;
console.log('我是多次定时器',a);
},3000);
console.log(a);
3.清除定时器
clearTimeout() 清除单次定时器
clearTimeout(flag);
clearInterval() 清除多次定时器
配合单次定时器使用 让多次定时器执行3次后清除
setTimeout(function(){
// 清除多次定时器
clearInterval(flag1);
},9001)
四.正则表达式
作用: 使用单个字符,去检索匹配符合某个规则字符串
制定一个规则对象
1.使用系统内置的RegExp() 如果有转移字符必须两次转义
var reg = RegExp(‘a’);
2.直接定义 推荐使用第二种
var reg = /a/;
3.声明正则对象:
new RegExp();
/hehe/
4.普通字符
\w 匹配单个的数字字母下划线
var reg = /\w/;
\W 匹配单个非数字字母下换线
var reg = /\W/
\d 匹配单个数字
var reg = /\d/;
\D 匹配单个非数字
var reg = /\D/;
\s 匹配单个的空白符
var reg = /\s/;
\S 匹配单个的非空白符
var reg = /\S/;
5.特殊字符 . * + ? {} [] () | ^ $
. 除了换行符以外的单个任意字符
var reg = /./;
* 限制匹配次数 0次或者多次 如果第一个就不符合直接返回 如果有连续的符合要求 都带走直到不符合为止
var reg = /.*/;
+至少匹配1次 或多次
var reg = /.+/;
? 禁止贪婪 尽可能少的去匹配
var reg = /.+?/;
{} 限制匹配的次数
{n,} 至少匹配n个
var reg = /a{3,}/
{n,m} 最少要有n个 最多m个 n-m个之间也符合要求
var reg = /\d{3,8}/
[] 类型范围 一个中括号只匹配一次
var reg = /[b-z]/;
var reg = /[a-zA-Z0-9_]/; // \w
var reg = /[^a-zA-Z0-9]/; // 如果^被用在【】中代表取反
var reg = /[.]/; 中括号中的. * + 就代表表纯粹的字符串 没有其他意义
() 子组 不会对整个规则产生影响 只是将 子组当中匹配到的内容作为新的元素返回
| 或 一般配合子组使用 多个个条件
var str = '291707309@qq.org'
var reg = /\w+@qq[.](com|cn|org)/
6.内置方法
test() 返回布尔值 如果匹配成功返回true 没有成功返回false
exec() 如果匹配到了返回由匹配结果组成的数组 如果没有匹配到返回null
有开始结束符的例子
var str = 'a12345&1a23456bd';
// 声明正则对象
var reg = /^a.+a.+b$/;
// 获取匹配结果 test() exec()
var res1 = reg.test(str);
var res2 = reg.exec(str);
console.log(res1);
console.log(res2);