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.取整

  1. document.writeln(Math.PI);//圆周率 3.141592653589793
  2. document.writeln(Math.max(1,66,99,77));//最大值 99
  3. document.writeln(Math.max(2,'pan'));// NaN
  4. document.writeln(Math.max());//-Infinity

案例:利用对象封装自己的数学对象 里面有PI最大值和最小值

  1. //案例:利用对象封装自己的数学对象 里面有PI最大值和最小值
  2. var mymath={
  3. PI:3.141592653,
  4. max:function () {
  5. var max=arguments[0];
  6. for (var i=1;i<arguments.length;i++){
  7. if (arguments[i]>max){
  8. max=arguments[i];
  9. }
  10. }
  11. return max;
  12. },
  13. min:function () {
  14. var min=arguments[0];
  15. for (var i=1;i<arguments.length;i++){
  16. if (arguments[i]<min){
  17. min=arguments[i];
  18. }
  19. }
  20. return min;
  21. }
  22. }
  23. document.writeln(mymath["PI"]);//3.141592653
  24. document.writeln(mymath.max(1,2,6,5));//6
  25. document.writeln(mymath.min(2,1,6,5));//1

2.随机数方法random()

返回一个浮点数,伪随机数在范围[0,1)
这个方法里面不跟参数
想要得到两个数之间的随机整数,并且包含这2个整数:
Math.floor(Math.random()*(max - min + 1)+min);

  1. function getrandom(min,max) {
  2. return Math.floor(Math.random()*(max - min + 1)+min);
  3. }
  4. document.writeln(getrandom(1,100));

案例:随机点名

  1. //随机点名
  2. var arr=['zs','ls','pan','haha'];
  3. var num=getrandom(0,arr.length-1);
  4. document.writeln(arr[num]);

2021.9.14.22:43
案例:猜数字游戏

  1. //猜数字游戏
  2. var random=getrandom(1,10);
  3. while(true){
  4. var number=prompt("你来猜,1~10的整数");
  5. if(number>random){
  6. alert('猜大了');
  7. }else if(number<random){
  8. alert('猜小了');
  9. }else{
  10. alert('猜对啦');
  11. break;
  12. }
  13. }

3.Date

是一个构造函数,必须使用new来创建调用

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’

  1. var date1=new Date(2019,10.1);
  2. document.writeln(date1+'<br>');//返回的是11月,不是10月
  3. var date2=new Date('2019-10-1 8:8:8');
  4. document.writeln(date2+'<br>');
  5. 输出结果:
  6. Fri Nov 01 2019 00:00:00 GMT+0800 (中国标准时间)
  7. Tue Oct 01 2019 08:08:08 GMT+0800 (中国标准时间)

3.日期格式化

方法名 说明 代码
getFullYear() 获得当年 obj.getFullYear()
getMonth() 获得当月(0~11)
getDate() 获得当天日期
getDay() 获取星期几(周日0到周六6)
getHours() 获取当前小时
getMinutes() 获取当前分钟
getSeconds() 获取当前秒数
  1. //格式化日期 年月日
  2. var date=new Date();
  3. document.writeln(date.getFullYear()+'<br>');//返回当前日期的年 2021
  4. document.writeln(date.getFullYear()+'<br>');//返回当前日期的年 2021
  5. document.writeln(date.getMonth()+1+'<br>');//返回的月份少一,所以要加1
  6. document.writeln(date.getDate()+'<br>');//返回今天是几号
  7. document.writeln(date.getDay()+'<br>');//返回今天是星期几,周一返回的是1,周六返回的6,周日返回的是0

写一个2021年9月15日 星期三

  1. //写一个2021年9月15日 星期三
  2. var year=date.getFullYear();
  3. var month=date.getMonth()+1;
  4. var dates=date.getDate();
  5. var arr=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
  6. var day=date.getDay();
  7. document.writeln('今天是:'+year+'年'+month+'月'+dates+'日 '+arr[day]);

2021.9.15 9:22

4.日期时分秒格式化

  1. function gettime(){
  2. var time=new Date();
  3. var h=time.getHours();
  4. var m=time.getMinutes();
  5. var s=time.getSeconds();
  6. h=h<10 ? '0'+h : h;//都是两位数
  7. m=m<10 ? '0'+m : m;
  8. s=s<10 ? '0'+s : s;
  9. document.write(h+':'+m+':'+s);
  10. }
  11. gettime();
  12. 获取当前时间,格式为:xx:xx:xx

5.获取日期的总的毫秒形式(时间戳)

是当前时间的毫秒数,而是距离1970年1月1号过了多少毫秒数

  1. //1,通过valueOf() getTime()
  2. document.writeln('<br>'+date.valueOf()+'\t');
  3. document.writeln(date.getTime()+'\n');
  4. //简单的写法
  5. var date2=+new Date();//+new Date()就是总的毫秒数
  6. document.writeln(date2);
  7. //3.h5新增获得的总毫秒数
  8. document.writeln(Date.now());

案例:倒计时

  1. 核心算法:输入的时间减去现在的时间就是剩余的时间,即倒计时,但不能拿时分秒相减,比如05减去25,得到是负数。
  2. 用时间戳来做,输入时间总的毫秒数减去现在时间总的毫秒数,得到的就是剩余的时间毫秒数
  3. 把剩余时间总的毫秒数转换为天、时、分、秒(时间戳转换为时分秒)

转换公式:

d=parseInt(总秒数/60/60/24); 计算天数
h=parseInt(总秒数/60/60%24); 计算小时
m=parseInt(总秒数/60%60); 计算分数
s=parseInt(总秒数%60); 计算当前秒数
  1. //案例:倒计时
  2. function countdown(time){
  3. var nowTime=+new Date();//返回的是当前时间总的毫秒数
  4. var inTime= +new Date(time);//返回的是输入时间总的毫秒数
  5. var times = (inTime - nowTime)/1000;//times是剩余时间总的秒数
  6. var d=parseInt(times / 60 / 60 / 24);
  7. var h=parseInt(times/60/60%24);
  8. var m=parseInt(times/60%60);
  9. var s=parseInt(times%60);
  10. d=d<10 ? '0'+d : d;
  11. h=h<10 ? '0'+h : h;//都是两位数
  12. m=m<10 ? '0'+m : m;
  13. s=s<10 ? '0'+s : s;
  14. return d+'天'+h+'时'+m+'分'+s+'秒';
  15. }
  16. document.writeln(countdown('2021-9-16 16:07:00'));
  17. document.writeln(date);
  18. 输出结果:
  19. Thu Sep 16 2021 16:08:38 GMT+0800 (中国标准时间)
  20. Fri Nov 01 2019 00:00:00 GMT+0800 (中国标准时间)
  21. Tue Oct 01 2019 08:08:08 GMT+0800 (中国标准时间)
  22. 2021
  23. 9
  24. 16
  25. 4
  26. 今天是:2021916 星期四
  27. 16 8 38
  28. 16:08:38
  29. 1631779718769 1631779718769 1631779718769 1631779718769
  30. 00000-10-38 Thu Sep 16 2021 16:08:38 GMT+0800 (中国标准时间)

2021.9.16 16:10