查文档
查文档学习不同对象,在mdn中查
math对象
不是构造函数,不用new可以直接使用
圆周率:Math.PI
绝对值:Math.abs()
向下取整:Math.floor()
向上取整:Math.ceil()
四舍五入(数字.5会往大取整):Math.round()
随机数:Math.random()
,随机数的范围:[0,1) 前闭后开
使用方法:math.random()
1到10取整:
function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min; //不含最大值,含最小值
}
console.log(getRandomInt(1,10));
随机点名:
var arr=['张三','李四','王五'];
console.log(arr[getRandomInt(0,arr.length)]);
data对象
用法地址
没有参数,返回当前系统时间
var date=new Date();
console.log(date);
有参数,返回参数时间
var date=new Date('2020-04-20 14:52:50');
console.log(date);
常用方法:
var date=new Date();
var year=date.getFullYear();
var month=date.getMonth()+1;//getMonth()返回的是0到11,所以加1
var dates=date.getDate();
var day=date.getDay();//返回的是0到6,0是星期天
function gettime(){//获取当前时间
hours=date.getHours();
hours=hours<10?'0'+hours:hours;//小于10补零
minutes=date.getMinutes();
minutes=minutes<10?'0'+minutes:minutes;
seconds=date.getSeconds();
seconds=seconds<10?'0'+seconds:seconds;
return hours+':'+minutes+":"+seconds;
}
var arr=['星期天','星期一','星期二','星期三','星期四','星期五','星期六'];
console.log('今天是'+year+'年'+month+'月'+dates+'日'+arr[day]+gettime());
获得总的毫秒数(时间戳)
1.
var date=new Date();
console.log(date.valueOf());
console.log(date.getTime());
2.常用
var date1=+new Date();
console.log(date1);
3.h5新增
console.log(Date.now());
**倒计时代码**
function cutdown(time){
var nowtime=+new Date();//当前时间秒数
var imputtime=+new Date(time);//用户输入毫秒数
var times=(imputtime-nowtime)/1000;//剩余秒数
var dates=parseInt(times/60/60/24);
dates=dates<10?'0'+dates:dates;
var hours=parseInt(times/60/60%24);
hours=hours<10?'0'+hours:hours;
var minutes=parseInt(times/60%60);
minutes=minutes<10?'0'+minutes:minutes;
var seconds=parseInt(times%60);
seconds=seconds<10?'0'+seconds:seconds;
return dates+'天'+hours+'时'+minutes+'分'+seconds+'秒';
}
console.log(cutdown('2020-4-20 16:18:00'));
Array对象(数组)
创建方法
var arr=new Array(2);//长度为2的空数组
检测是否为数组
console.log(arr2 instanceof Array);
console.log(Array.isArray(arr2));//Array里面的判断方法,是h5里新增的方法
数组常用方法
push()添加方法
在数组尾部追加新的元素,返回值为新数组长度
arr2.push(4,'push');
unshift()添加方法
在数组前面追加新的元素,返回值为新数组长度
arr2.unshift(0);
pop()删除方法
在数组尾部删除元素。返回值为删除的元素
arr2.pop();
shift()删除方法
在**数组头部*删除元素。返回值为删除的元素
arr2.shift();
reverse()翻转方法
arr.reverse();
数组排序方法
sort()排序方法(冒泡排序)
1.升序排序
arr.sort(function(a,b){
return a-b;//按照升序
});
2.降序排序
arr.sort(function(a,b){
return b-a;//按照升序
});
数组索引方法
1.indexof()
从前面查找,返回数组对应元素的索引号,返回的是第一个满足条件的索引号,找不到元素则返回 -1
var arr=['red','blue','yellow'];
console.log(arr.indexOf('yellow'));//返回数组对应元素的索引号
2.lastindexof()了解即可
从后面查找,返回数组对应元素的索引号,返回的是第一个满足条件的索引号,找不到元素则返回 -1
var arr=['red','blue','yellow'];
console.log(arr.lastindexOf('yellow'));//返回数组对应元素的索引号
数组去重
1.遍历旧数组,拿着旧数组的元素去查询新数组,如果新数组没有该元素则添加到新数组中。
注:1.利用indexof()返回-1则是新数组中没有查找的元素,则添加。
代码案例
var arr=['a','c','b','a','s','c','b','d','e','a'];
function unique(arr){
var newarr=[];
for(var i=0;i<arr.length;i++){
if(newarr.indexOf(arr[i])===-1){//indexOf(旧数组元素)方法查询新数组
newarr.push(arr[i]);//利用push()方法存储元素
}
}
return newarr;
}
console.log(unique(arr));
数组转字符串方法
tostring()方法
将数组转换为字符串,分隔符为‘,’
console.log(arr.toString());
join()方法
将数组转换为字符串,分隔符自定义
console.log(arr.join('自定义'));//符号自定义
数组连接方法
concat() 连接数组方法
将两个或多个数组连接为一个新数组。
连接两个数组:
var arr1=['a','c','b','a','s','c','b','d','e','a'];
var arr2=[1,23,434,35,3];
var arr=arr1.concat(arr2);
连接多个数组:
var arr1=['a','c','b','a','s','c','b','d','e','a'];
var arr2=[1,23,434,35,3];
var arr3=['red','green'];
var arr=arr1.concat(arr2,arr3);
数组元素多个删除方法
1.splice()方法(重要常用)
splice(第几个索引号开始,删除的个数),以数组形式返回删除的元素。原始数组被改变了。
var arr2=[1,2,3,4,5,6,7,8];
console.log( arr2.splice(2,3));//返回的是3,4,5
console.log(arr2);//返回的是1,2,6,7,8
2.slice()方法
slice(begin,end),包括begin,但不包括end。只是浅拷贝,原始数组没有改变。
var arr2=[1,2,3,4,5,6,7,8];
console.log( arr2.slice(2,4));//返回的是3,4
console.log(arr2);//返回的是1,2,3,4,5,6,7,8
字符串对象
基本包装类型:把简单数据类型转换为复杂数据类型
查找字符串中所有“o”所在位置及次数
var str='asidosafhosahfbsajfbawurfbnsbfaadsfsghfdh';
var index=str.indexOf('a');
var num=0;
while(index!=-1){
console.log(index);
num++;
index=str.indexOf('a',index+1);
}
console.log('a出现的次数是'+num);
根据位置返回字符
1.charat()方法
charat(索引号),返回的是索引号查找的字符
var str='asidosafhosahfbsajfbawurfbnsbfaadsfsghfdh';
console.log(str.charAt(3));
2.charCodeAt()方法
charCodeAt(索引号),返回的是索引号查找的字符,用处是判断用户按下了哪个键。
console.log(str.charCodeAt(3));
3.str()方法
适用于Html5以上等,
console.log(str[1]);
案例:判断字符串出现最多的字符及次数
var str='asidosafhosahfbsajfbawurfbnsbfaadsfsghfdh';
var o={};
for(var i=0;i<str.length;i++){
var chars=str.charAt(i);//chars是每一个字符
if(o[chars]){
o[chars]++;
}else{
o[chars]=1;
}
}
var max=0;
var ch='';
for(var k in o){
if(o[k]>max){
max=o[k];
ch=k;
}
}
console.log(max);
console.log('出现最多的字符是'+ch);
substr()截取方法
substr(‘截取的位置’,‘截取几个字符’)
var str='123456789';
console.log(str.substr(3,3));//显示的是456
replace()替换方法
replace(‘被替换的字符’,‘替换的字符’),只替换显示的第一个字符
单个替换:
var str='123456789';
console.log(str.replace(2,'a'));//显示的是1a3456789
多个替换:
var str='123456789123456789123456789';
while(str.indexOf('4')!==-1){
str= str.replace('4',"*");
}
console.log(str);
split()字符串转数组方法
split(‘分隔符’),分隔符可以变化,取决于原字符串的分隔符
var str='123,456,789123456789123456789';
console.log(str.split(','));//显示["123", "456", "789123456789123456789"]
数据类型
简单数据类型:string,number,Boolean,undefined,null
null返回的是一个空对象
复杂数据类型:object,array,data
通常需要通过new创建对象