内置对象简介
内置对象就是指这个语言自带的一些对象,供开发者使用,这些对象提供了一些常用的或是最基本而必要的功能。
JavaScript的内置对象 :
内置对象
对象说明
Arguments
函数参数集合
Array
数组
Boolean
布尔对象
Date
日期时间
Error
异常对象
Function
函数构造器
Math
数学对象
Number
数值对象
Object
基础对象
RegExp
正则表达式对象
String
字符串对象
前面的几篇文章中,我们专门讲到了数组 Array。今天这篇文章,我们来讲一下其他的内置对象。
内置对象:Date
Date对象的创建
写法一 :表示的是当前代码执行的时间
1 2 var date1 = new Date ();console .log (date1);
写法二 :在参数中传递一个表示时间的字符串(兼容性最强)
1 2 var date2 = new Date ("2017/09/06 09:00:00" );console .log (date2);
写法三:(不常用)
1 2 var date3 = new Date ('Wed Jan 27 2017 12:00:00 GMT+0800 (中国标准时间)' );console .log (date3 );
写法四:(不常用)
1 2 var date4 = new Date (2017 , 1 , 27 ); console .log (date4);
以上四种写法的打印结果是:
获取日期和时间
Date对象 有如下方法,可以获取日期和时间:
getDate()
获取日 1-31
getDay()
获取星期 0-6 (0代表周日,1代表周一)
getMonth()
获取月 0-11 (0代表一月)
getFullYear()
获取年份
getHours()
获取小时 0-23
getMinutes()
获取分钟 0-59
getSeconds()
获取秒 0-59
getMilliseconds()
获取毫秒 (1s = 1000ms)
代码举例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 var myDate = new Date ();console .log (myDate); console .log (myDate.getDate ()); console .log (myDate.getDay ()); console .log (myDate.getMonth ()); console .log (myDate.getFullYear ()); console .log (myDate.getHours ()); console .log (myDate.getMinutes ()); console .log (myDate.getSeconds ()); console .log (myDate.getMilliseconds ()); console .log (myDate.getTime ());
getTime():获取时间戳
Date对象 还有如下方法:
getTime()
获取当前日期对象的时间戳 。这个方法在实际开发中,用得比较多。
啥叫时间戳?接下来,我们解释一下。
时间戳 :指的是从格林威治标准时间的1970年1月1日,0时0分0秒
到当前日期所花费的毫秒数 (1秒 = 1000毫秒)。
计算机底层在保存时间时,使用的都是时间戳。时间戳的存在,就是为了统一 时间的单位。
我们再来看下面这样的代码:
1 2 3 var myDate = new Date ("1970/01/01 0:0:0" );console .log (myDate.getTime ());
打印结果(可能会让你感到惊讶)
为啥打印结果是-28800000
,而不是0
呢?这是因为,我们的当前代码,是在中文环境下运行的,与英文时间会存在8个小时的时差 (中文时间比英文时间早了八个小时)。如果代码是在英文环境下运行,打印结果就是0
。
利用时间戳检测代码的执行时间 :
我们可以在业务代码的前面定义 时间戳1
,在业务代码的后面定义 时间戳2
。把这两个时间戳相减,就能得出业务代码的执行时间。
练习
举例1:模拟日历
要求每天打开这个页面,都能定时显示当前的日期。
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 <!DOCTYPE html > <html > <head lang ="en" > <meta charset ="UTF-8" > <title > </title > <style > div { width : 800px ; margin : 200px auto; color : red; text-align : center; font : 600 30px /30px "simsun" ; } </style > </head > <body > <div > </div > <script > var date = new Date (); var year = date.getFullYear (); var month = date.getMonth (); var hao = date.getDate (); var week = date.getDay (); var arr = ["星期日" ,"星期一" ,"星期二" ,"星期三" ,"星期四" ,"星期五" ,"星期六" ]; var div = document .getElementsByTagName ("div" )[0 ]; div.innerText = "今天是:" +year+"年" +(month+1 )+"月" +hao+"日 " +arr[week]; </script > </body > </html >
实现效果:
举例2:发布会倒计时
实现思路:
设置一个定时器,每间隔1毫秒就自动刷新一次div的内容。
代码实现:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 <!DOCTYPE html > <html > <head lang ="en" > <meta charset ="UTF-8" > <title > </title > <style > div { width : 1210px ; margin : 200px auto; color : red; text-align : center; font : 600 30px /30px "simsun" ; } </style > </head > <body > <div > </div > <script > var div = document .getElementsByTagName ("div" )[0 ]; var timer = setInterval (fn, 1 ); function fn ( ) { var nowtime = new Date (); var future = new Date ("2019/02/03 11:20:00" ); var timeSum = future.getTime () - nowtime.getTime (); var day = parseInt (timeSum / 1000 / 60 / 60 / 24 ); var hour = parseInt (timeSum / 1000 / 60 / 60 % 24 ); var minu = parseInt (timeSum / 1000 / 60 % 60 ); var sec = parseInt (timeSum / 1000 % 60 ); var millsec = parseInt (timeSum % 1000 ); day = day < 10 ? "0" + day : day; hour = hour < 10 ? "0" + hour : hour; minu = minu < 10 ? "0" + minu : minu; sec = sec < 10 ? "0" + sec : sec; if (millsec < 10 ) { millsec = "00" + millsec; } else if (millsec < 100 ) { millsec = "0" + millsec; } if (timeSum < 0 ) { div.innerHTML = "距离苹果发布会还有00天00小时00分00秒000毫秒" ; clearInterval (timer); return ; } div.innerHTML = "距离苹果发布会还有" + day + "天" + hour + "小时" + minu + "分" + sec + "秒" + millsec + "毫秒" ; } </script > </body > </html >
实现效果: