数组的操作
1、创建数组
2、索引操作
3、内置方法 push() pop() unshift() shift() splice()
<script type="text/javascript">
//数组的定义
//1、使用系统内置的Array()创建一个数组
// var arr=new Arry();
//2. 直接定义
var arr=['a','b'];
//通过索引操作数组可以修改 可以添加 可以查询
// arr[0]="A" ;
// arr[2]='c';
// arr[10]='0';
// console.log(arr[9]);
// console.log(arr);
//内置方法
//从尾部添加push() 会改变原数组
console.log(arr);
arr.push('c','d');
console.log(arr);
// 弹出数组最后一个元素pop() 会改变原数组 有返回值 将弹出后的元素返回
var res=arr.pop();
console.log(arr);
console.log(res);
// 从前面插入元素 会改变原数组
arr.unshift('A','B');
arr.unshift('C');
console.log(arr);
// 从前面删除第一个元素 会改变原数组 有返回值 将删除后的元素返回
var res=arr.shift();
console.log(arr);
console.log(res);
// 通过索引操作的内置的方法 splice() 会修改原数组 将删除后元素 组成的新数组返回
//如果只传一个参数 是从哪个索引开始删 删到最后
// 如果传两个参数 第二个参数代表删几个
// 如果传入了三个或者更多的参数 从第三个参数开始作为被替换的元素插入到数组当中
var res=arr.splice(1,2,5,6);
console.log(arr);
console.log(res);
</script>
数学对象
Math.abs() 绝对值
Math.floor() 向下取整
Math.ceil() 向上取整
Math.round()四舍五入
Math.random()0-1之间的随机数
<script type="text/javascript">
console.log(Math.abs(-10));
console.log(Math.floor(1.9));
console.log(Math.ceil(1.1));
console.log(Math.round(1.5));
console.log(Math.max(1,10,-32));
console.log(Math.min(-12,23,34));
console.log(Math.random());
// 我要取0-10随机整数
var res=Math.floor(Math.random()*11);
// 1-10之间的随机数
var res=Math.floor(Math.random()*10)+1;
// 3-10之间的随机整数
var res=Math.floor(Math.random()*(10-3+1))+3;
// 封装函数 取n-m之间随机整数
function rand(n,m)(){
return Math.floor(Math.random()*(m-n+1))+n;
}
</script>
定时器
一般情况下,定时器用来完成动画效果
定时器不会阻塞程序执行,并行执行的 返回一个数字为定时器的标识
单次定时器
setTimeout()
多次定时(循环定时器)
setInterval()
清除定时器
clejsarTimeout() 清除单次定时器
clearInterval() 清除多次定时器
<body>
<script type="text/javascript">
var a = 1;
// 启动一个单次定时器 等待指定时间 执行一次指定的时间
// 格式 setTimeout(函数,等待时间)
var flag=setTimeout(function(){
a++;
console.log("我是单次定时器",a);
},3000);
console.log(a,'我是a');
console.log(flag);//返回的一般是数字1 代表当前的定时器
// 清除单次定时器
// clearTimeout(flag);
// 多次定时器
var flag1=setInterval(function(){
a++;
console.log("我是多次定时器",a);
},3000);
console.log(a);
// 配合单次定时器使用 让多次定时器执行3次后清除
setTimeout(function(){
// 清除多次定时器
clearInterval(flag1);
},9001);
</script>
</body>
正则表达式
使用单个字符,去检索匹配符合某个规则字符串
声明正则对象:
new RegExp();
/hehe/
内置方法:
test() exec()
转义字符:
\w \W \d \D \s \S
特殊元字符
. * + ? {} [] () | ^ $
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>正则表达式</title>
</head>
<body>
<script type="text/javascript">
var str = 'aa.aa 12\n& _a\n18693041795&17643983920c';
// 制定一个对象
// 1.使用系统内置的RegExp() 如果有转义字符必须两次转义
// var reg= RegExp('a');
// 2.直接定义 推荐使用第二种
// var reg=/a/;
// =============================================
// 正则表达式 由 字符串和转义字符 还有特殊字符组成
// 普通字符
// 转义字符
// \w 匹配单个的数字字母下划线
// var reg = /\w/;
// \W 匹配单个非数字字母下划线
// var reg =/\W/;
// \d 匹配单个数字
// var reg =/\d/;
// \D 匹配非单个数字;
// var reg = /\D/;
// \s 匹配单个空白符
// var reg=/\s/;
// \S 匹配单个非空白符
// var reg=/\S/;
//特殊字符. * + ? {} [] () | ^ $
// .除了换行符以外的单个任意字符
// 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)/
// var str='a123456'
// var reg=/[0-9]\w{5,7}/
//内置方法
//test()返回布尔值 如果匹配成功返回true 没有成功返回false
//exec()如果匹配到了返回由匹配结果组成的数组 如果没有匹配到返回null
var res1=reg.test(str);
var res2=reg.exec(str);
console.log(res1);
console.log(res2);
</script>
</body>
</html>
<meta charset="utf-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var str='a12345&1a23456b';
// 声明正则对象 ^限制开头是什么 $限制结尾必须是什么
var reg=/^a.+b$/;
// 获取匹配结果 test() exec()
var res1=reg.test(str);
var res2=reg.exec(str);
console.log(res1);
console.log(res2);
</script>
</body>
</html>