一.Math对象
console.log(Math.max(1,3,5)); //输出结果为5
//利用Math得到1-10之间的随机整数,包含1和10
function getRadom(min,max){
return Math.floor(Math.random()*(max-min+1))+min;
}
console.log(getRadom(1,10));
//封装数学对象,PI、最大值和最小值
var myMath = {
PI:3.1415926,
max:function(){
var max = arguments[0];
for(var i = 1; i<arguments.length; i++){
if(arguments[i]>max){
max = arguments[i];
}
}
return max;
},
min:function(){
var min = arguments[0];
for(var i = 1; i<arguments.length; i++){
if(arguments[i]<min){
min = arguments[i];
}
}
return min;
}
}
console.log(myMath.PI);
console.log(myMath.max(1,5,9));
console.log(myMath.min(10,50,90));
//1-10猜数字游戏
function getRadom(min,max){
return Math.floor(Math.random()*(max-min+1))+min;
}
var random = getRadom(1,10);
var c = 10;//次数
for(i=9;i>=0;i--){
var num = prompt('请输入1-10之间的数字');
c = c-1;
if(num > random){
alert('数字大了,您还有'+i+'次机会');
}else if(num<random){
alert('数字小了,您还有'+i+'次机会');
}else{
var b = 10 - i;
alert('您猜对了,用了'+b+'次机会');
break;
}
}
二.Date对象
Date()是一个构造函数,必须使用new来创建调用
var date = new Date();
console.log(date);
// 格式化年月日
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth()+1;
var dates = date.getDate();
var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
var day = date.getDay();
console.log('今天是:'+ year + '年'+ month + '月' + dates + '日' + arr[day]);
//封装函数返回当前的时分秒
function getTimer(){
var time = new Date();
var h = time.getHours();
var m = time.getMinutes();
var s = time.getSeconds();
h = h < 10? '0'+h : h;
m = m < 10? '0'+m : m;
s = s < 10? '0'+s : s;
return h + ':' + m + ':' + s;
}
console.log(getTimer());
// 封装倒计时函数
function countDown(time){
var nowTime = +new Date();
var inputTime = +new Date(time);
var times = (inputTime - nowTime)/1000;//剩余时间毫秒数
var d = parseInt(times/60/60/24);//天数
d = d<10? '0'+d : d;
var h = parseInt(times/60/60%24);//小时
h = h<10? '0'+h : h;
var m = parseInt(times/60%60);//分
m = m<10? '0'+m : m;
var s = parseInt(times%60);//秒
s = s<10? '0'+s : s;
return d + '天' + h + '时' + m + '分' + s + '秒';
}
console.log(countDown('2020-5-1 18:00:00'));
// 时间戳转日期
function timesToDate(timesStamp) {
var date = new Date(timesStamp * 1000); //时间戳10位需要*1000,时间戳位13位不需要*1000
var y = date.getFullYear()
var mon = date.getMonth() + 1
var d = date.getDate()
var h = date.getHours()
var m = date.getMinutes()
var s = date.getSeconds()
h = h < 10? '0' + h : h
m = m < 10? '0' + m : m
s = s < 10? '0' + s : s
return y + '-' + mon + '-' + d + ' ' + h + ':' + m + ':' + s
}
三.数组对象
A 运算符:intanceof**
var arr= [1,2,3];
console.log(arr intanceof Array);
//返回结果为true,证明arr是一个数组
B 方法:Array.isArray() 它为H5新增的方法,只有IE9以上版本的浏览器支持
var arr = [4,5,6];
console.log(Array.isArray(arr));
//返回结果为true,arr为数组
2.添加数组元素的方法
A 在数组末尾添加新的元素:push()
var arr = ['A','B','C'];
cosole.log(arr.push(4));
// 利用push(),把数组中大于2000的删除,其余保存到新数组中
var arr = [1500,1200,2000,2100,1800];
var newArr = [];
for(var i=0; i<arr.length; i++){
if(arr[i]<2000){
newArr.push(arr[i]);
}
}
console.log(newArr);
B 在数组开头添加新的元素:unshift()
var arr = ['red','green','blue'];
cosole.log(arr.unshift('purple'));
3.删除数组元素
A 删除数组最后一个元素 pop()
var arr = ['张三','李四','王五'];
cosole.log(arr.pop());
B 删除数组第一个元素 shift()
var arr = ['昨天','今天','明天'];
cosole.log(arr.shift());
4.翻转数组和数组冒泡排序
A 翻转数组 reverse()
var arr = ['red','blue','green'];
arr.reverse();
console.log(arr);
B 冒泡排序 sort()
var arr = [13,4,77,1,7];
arr.sort(function(a,b){
return a - b;//按升序排列,降序为b-a
});
console.log(arr);
5.获取数组元素索引
A indexOf() PS:如果该数组里面找不到元素,则返回的是-1
var arr = ['red','blue','green'];
console.log(arr.indexOf('blue'));
B lastIndexOf 从数组最末尾开始查找,其余与indexOf()相同
// 数组去重函数
function unique(arr){
var newArr = [];
for(var i=0; i<arr.length; i++){
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i]);
}
}
return newArr;
}
var demo = unique(['c','a','z','a','x','a','x','c','b']);
console.log(demo);
6.数组转换为字符串
01 toSting()
var arr = ['1','2','3'];
console.log(arr.toString());
02 join() 可以使用任意分隔符
var arr = ['green','blue','red'];
console.log(arr.join('-'));
四.字符串对象
1.基本包装类:把简单数据类型包装成为了复杂数据类型,这样简单数据类型就有了属性和方法。
var str = 'andy';
console.log(str.length);
2.根据字符返回位置indexOf(‘要查找的字符’,起始位置)
var str = '肖申克的救赎,真的好看';
console.log(str.indexOf('的',0));//从索引值为0的位置开始查找,返回值为3
// 求下列字符串中o出现的位置及次数
var str = 'abcoefoxyozzopp';
var index = str.indexOf('o');
var num = 0;
while(index != -1){
console.log(index);
num++;
index = str.indexOf('o',index+1);
}
console.log('o出现的次数为' + num);
3.根据位置返回字符
A charAt(index) 根据位置返回字符
var str = 'adny';
console.log(str.charAt(3));
B str[index] H5新增方法,与chartAt作用相同。但只支持IE8以上版本的浏览器
// 统计出现最多的字符和次数
var str = 'abcoefoxyozzopp';
var o = {};
for(var i=0; i<str.length; i++){
var chars = str.charAt(i);
if(o[chars]){
o[chars]++;
}else{
o[chars] = 1;
}
}
console.log(o);
// 遍历对象
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)
4.拼接和截取字符串
A 拼接字符串:concat()
var str = 'hello';
console.log(str.concat('world'));//helloworld
B 截取字符串:substr(‘截取的起始位置’,’截取几个字符’)
var str = '我和我的祖国';
console.log(str.substr(2,2));
5.替换字符和字符转换数组
A 替换字符:replace(‘被替换字符’,’替换的字符’)
//将下列字符串中的o替换为*
var str = 'abcoefoxyozzopp';
while(str.indexOf('o') !== -1){
str = str.replace('o','*');
}
console.log(str);
B 字符转换数组
var str = 'red,blue,green';
console.log(str.split(','));