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.141592653589793document.writeln(Math.max(1,66,99,77));//最大值 99document.writeln(Math.max(2,'pan'));// NaNdocument.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.141592653document.writeln(mymath.max(1,2,6,5));//6document.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>');//返回当前日期的年 2021document.writeln(date.getFullYear()+'<br>');//返回当前日期的年 2021document.writeln(date.getMonth()+1+'<br>');//返回的月份少一,所以要加1document.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 (中国标准时间)20219164今天是:2021年9月16日 星期四16 8 3816:08:381631779718769 1631779718769 1631779718769 163177971876900天00时0-1分0-38秒 Thu Sep 16 2021 16:08:38 GMT+0800 (中国标准时间)
2021.9.16 16:10
