JavaScript的内置对象:可以直接使用的对象(不需要使用字面量、Object、构造函数创建的对象,JavaScript已经定义好的对象)
1、使用MDN(web开发文档的网站)查询资料:MDN 是 Mozilla基金会的开发者网络平台。提供了大量关于各种HTML、CSS和JavaScript功能的开放、详细的文档,以及广泛的Web API参考资料。(MDN Web Docs)
2、Math对象:是一个内置对象,用于数学运算的。不是一个函数对象(通过构造函数创建的对象称为函数对象),在创建Math对象不能使用new运算符(即不能 new Math()),它的属性和方法在使用时采用:
Math.属性名
Math.方法名(【参数】)
(1)属性:
Math.PI :表示圆周率
(2)方法:
Math.abs(x) :返回参数x的绝对值
Math.floor(x):返回小于等于形参x的最大整数。向下取整
Math.ceil(x):返回大于等于形参x的最小整数。向上取整
Math.max(x,y,z...):返回所有参数的最大值
Math.min(x,y,z...):返回所有参数的最小值
Math.pow(x,y):返回x的y次方
Math.sqrt(x):返回x的算术平方根
Math.round(x):取整,x四舍五入后的整数
Math.random():返回0.0~1.0之间的随机数(不包含1.0)
Math.trunc():
练习1:定义一个函数,返回min~max之间的随机数
function Random(){ //定义构造方法:没有属性 this.getRandom = function(min,max){ let num = Math.random()*(max-min)+min return Math.round(num) } } let r1 = new Random() //创建对象r1 console.log(r1.getRandom(10,50)) //通过对象r1调用方法生成随机数
练习2:定义一个3*4的二维数组,数组元素随机生成,并输出数组
function Random(){ //定义构造方法:没有属性 this.getRandom = function(min,max){ let num = Math.random()*(max-min)+min return Math.round(num) } } let r1 = new Random() //创建对象r1 console.log(r1.getRandom(10,50)) //通过对象r1调用方法生成随机数 //1.定义3*4的二维数组 let arr = new Array( new Array(4), new Array(4), new Array(4)) //2.随机生成二维数组中的元素、并显示 let str = '' for(let i=0;i<arr.length;i++){ //行下标 for(let j=0;j<arr[i].length;j++){ //列下标 arr[i][j] = r1.getRandom(10,50) str += arr[i][j] + '\t' } str +='\n' } console.log(str)
3、Date对象:是一个函数对象,使用new 运算符创建对象
(1)构造函数:
a、无参的构造函数:new Date() --->使用的日期格式是月日年
b、传入年月日、时分秒:new Date(年,月,日,时,分,秒) --->月份值应该在0~11之间,0表示1月,11表示12月
c、传入字符串表示日期和时间:new Date(‘字符串’)
d、传入整数:new Date(整数) --->整数表示毫秒数
(2)其他函数:
a、getFullYear():获取年份(4位)
b、getMonth():获取月份(0~11)
c、getDate():获取日期(月份中的某一天,1~31)
d、getDay():获取星期(0~6,0表示星期天)
e、getHours():获取小时数
f、getMinutes():获取分钟数
g、getTime():获取1970年1月1日0时0分0秒到当前日期时间之间的毫秒数
h、toLocaleDateString():返回该日期对象日期部分的字符串(即将年月日转换为字符串)
i、toLocaleString():返回该日期对象的字符串(即将日期对象转换为字符串)
j、toLocaleTimeString():返回该日期对象时间部分的字符串(将时分秒转换为字符串)
k、toTimeString():以人类易读形式返回一个日期对象时间部分的字符串
练习3、'三天打渔两天晒网',假如2008-8-8这天某人在打渔,若从这天开始算,那么2022-10-21是打渔还是晒网
(1)两个日期对象:2008-8-8 和 2022-10-21,计算两个日期对象之间的天数
(2)用天数对5取余,得到是打渔还是晒网(1、2、3是打渔,0、4是晒网)
//1.创建日期对象 let d1 = new Date('2008-8-8') let d2 = new Date() //2.计算时间差 let times = d2.getTime()-d1.getTime() console.log(times) //3.将毫秒数转换成天数 let days = parseInt(times/1000/3600/24) console.log(days) //4.判断是打渔还是晒网 let s = days % 5 if(s ==1 || s==2 || s==3){ console.log('打渔') }else{ console.log('晒网') }
练习4、倒计时(2023年元旦的倒计时),格式是:距离2023年元旦还有 X 天 X 时 X 分 X 秒
(1)创建两个日期对象:当前日期对象、创建2023-1-1日期对象
(2)计算它们之间相差的毫秒数
(3)将该毫秒数转换成天、时、分、秒
//1.创建日期对象 let end = new Date('2023-1-1') let start = new Date() //2.计算得到两个日期对象之间的毫秒数之差,转换成秒钟 let times = (end - start)/1000 //3.计算得到天、时、分、秒 let d = parseInt(times/60/60/24) //转换成天数 d = d < 10 ? ('0'+d):d //如果天数是个位数,则在前面补0 let h = parseInt(times/60/60%24) h = h < 10? ('0'+h):h let m = parseInt(times/60%60) m = m < 10? ('0'+m):m let s = parseInt(times%60) s = s < 10? ('0'+s):s let info = `距离2023年元旦还有 ${d} 天 ${h} 时 ${m} 分 ${s} 秒` console.log(info)