1.内置对象概述
java中的对象分为三种:自定义对象、内置对象、浏览器对象
前面两个对象是J5基础内容,属于ECMAScript,第三个浏览器对象属于我们JS独有的,在JS API中讲解
内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)
JavaScript提供了多个内置对象:Math、Date、Array、String等
2.Math对象
与其他全局变量不同的是,Math不是一个构造器,即不需要new对象
Math.PI 圆周率
Math.floor() 地板,向下取整
Math.ceil() 天花板,向上取整
Math.round() 四舍五入,就近取值, 注意-3.5结果是-3
Math.abs() 绝对值
Math.max()/Math.min()求最大值和最小值
1.取整
document.writeln(Math.PI);//圆周率 3.141592653589793
document.writeln(Math.max(1,66,99,77));//最大值 99
document.writeln(Math.max(2,'pan'));// NaN
document.writeln(Math.max());//-Infinity
案例:利用对象封装自己的数学对象 里面有PI最大值和最小值
//案例:利用对象封装自己的数学对象 里面有PI最大值和最小值
var mymath={
PI:3.141592653,
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;
}
}
document.writeln(mymath["PI"]);//3.141592653
document.writeln(mymath.max(1,2,6,5));//6
document.writeln(mymath.min(2,1,6,5));//1
2.随机数方法random()
返回一个浮点数,伪随机数在范围[0,1)
这个方法里面不跟参数
想要得到两个数之间的随机整数,并且包含这2个整数:
Math.floor(Math.random()*(max - min + 1)+min);
function getrandom(min,max) {
return Math.floor(Math.random()*(max - min + 1)+min);
}
document.writeln(getrandom(1,100));
案例:随机点名
//随机点名
var arr=['zs','ls','pan','haha'];
var num=getrandom(0,arr.length-1);
document.writeln(arr[num]);
2021.9.14.22:43
案例:猜数字游戏
//猜数字游戏
var random=getrandom(1,10);
while(true){
var number=prompt("你来猜,1~10的整数");
if(number>random){
alert('猜大了');
}else if(number<random){
alert('猜小了');
}else{
alert('猜对啦');
break;
}
}
3.Date
1.获取当前时间必须实例化
//使用Date, 如果没有参数,返回当前系统的当前时间
var date=new Date();
document.writeln(date+’
‘);//当前时间
输出结果:Wed Sep 15 2021 08:22:01 GMT+0800 (中国标准时间)
2.Date()构造函数的参数
如果括号里面有时间,就返回参数里面的时间
参数常用的写法 数字型:2019,10,01 或者字符串型’2019-10-1 8:8:8’
var date1=new Date(2019,10.1);
document.writeln(date1+'<br>');//返回的是11月,不是10月
var date2=new Date('2019-10-1 8:8:8');
document.writeln(date2+'<br>');
输出结果:
Fri Nov 01 2019 00:00:00 GMT+0800 (中国标准时间)
Tue Oct 01 2019 08:08:08 GMT+0800 (中国标准时间)
3.日期格式化
方法名 | 说明 | 代码 |
---|---|---|
getFullYear() | 获得当年 | obj.getFullYear() |
getMonth() | 获得当月(0~11) | |
getDate() | 获得当天日期 | |
getDay() | 获取星期几(周日0到周六6) | |
getHours() | 获取当前小时 | |
getMinutes() | 获取当前分钟 | |
getSeconds() | 获取当前秒数 |
//格式化日期 年月日
var date=new Date();
document.writeln(date.getFullYear()+'<br>');//返回当前日期的年 2021
document.writeln(date.getFullYear()+'<br>');//返回当前日期的年 2021
document.writeln(date.getMonth()+1+'<br>');//返回的月份少一,所以要加1
document.writeln(date.getDate()+'<br>');//返回今天是几号
document.writeln(date.getDay()+'<br>');//返回今天是星期几,周一返回的是1,周六返回的6,周日返回的是0
写一个2021年9月15日 星期三
//写一个2021年9月15日 星期三
var year=date.getFullYear();
var month=date.getMonth()+1;
var dates=date.getDate();
var arr=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
var day=date.getDay();
document.writeln('今天是:'+year+'年'+month+'月'+dates+'日 '+arr[day]);
4.日期时分秒格式化
function gettime(){
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;
document.write(h+':'+m+':'+s);
}
gettime();
获取当前时间,格式为:xx:xx:xx
5.获取日期的总的毫秒形式(时间戳)
是当前时间的毫秒数,而是距离1970年1月1号过了多少毫秒数
//1,通过valueOf() getTime()
document.writeln('<br>'+date.valueOf()+'\t');
document.writeln(date.getTime()+'\n');
//简单的写法
var date2=+new Date();//+new Date()就是总的毫秒数
document.writeln(date2);
//3.h5新增获得的总毫秒数
document.writeln(Date.now());
案例:倒计时
- 核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时,但不能拿时分秒相减,比如05减去25,得到是负数。
- 用时间戳来做,输入时间总的毫秒数减去现在时间总的毫秒数,得到的就是剩余的时间毫秒数
- 把剩余时间总的毫秒数转换为天、时、分、秒(时间戳转换为时分秒)
转换公式:
d=parseInt(总秒数/60/60/24); | 计算天数 |
---|---|
h=parseInt(总秒数/60/60%24); | 计算小时 |
m=parseInt(总秒数/60%60); | 计算分数 |
s=parseInt(总秒数%60); | 计算当前秒数 |
//案例:倒计时
function countdown(time){
var nowTime=+new Date();//返回的是当前时间总的毫秒数
var inTime= +new Date(time);//返回的是输入时间总的毫秒数
var times = (inTime - nowTime)/1000;//times是剩余时间总的秒数
var d=parseInt(times / 60 / 60 / 24);
var h=parseInt(times/60/60%24);
var m=parseInt(times/60%60);
var s=parseInt(times%60);
d=d<10 ? '0'+d : d;
h=h<10 ? '0'+h : h;//都是两位数
m=m<10 ? '0'+m : m;
s=s<10 ? '0'+s : s;
return d+'天'+h+'时'+m+'分'+s+'秒';
}
document.writeln(countdown('2021-9-16 16:07:00'));
document.writeln(date);
输出结果:
Thu Sep 16 2021 16:08:38 GMT+0800 (中国标准时间)
Fri Nov 01 2019 00:00:00 GMT+0800 (中国标准时间)
Tue Oct 01 2019 08:08:08 GMT+0800 (中国标准时间)
2021
9
16
4
今天是:2021年9月16日 星期四
16 8 38
16:08:38
1631779718769 1631779718769 1631779718769 1631779718769
00天00时0-1分0-38秒 Thu Sep 16 2021 16:08:38 GMT+0800 (中国标准时间)
2021.9.16 16:10