第3章 JavaScript对象编程 学习目标 (1) 理解JavaScript中的对象。 (2) 掌握JavaScript的Date、Math、String等对象。 (3) 掌握JavaScript的数组声明以及使用方法。 (4) 掌握正则表达式的属性和方法。 (5) 掌握自定义对象的使用方法。 JavaScript是一种基于对象的语言,它支持3种对象: 内置对象、用户自定义对象以及浏览器对象。常用的内置对象包括Date对象、Math对象、String对象、Array对象及RegExp对象等。下面将介绍常用内置对象的属性和方法及如何使用JavaScript的内置对象。 任务3.1实现京东秒杀效果 在各大电商平台,常常能看到秒杀活动,下面以京东平台为例,每天固定时间开展不同商品的秒杀,6~8点为8点场,后面每隔两小时做一场秒杀,每场时长两小时,直到晚上0点结束,如图31所示。 图31京东秒杀效果 科技创新给人们的生活带来了很多便利,通过电商平台足不出户就可以买到生活必需品,各电商平台也常常开展秒杀活动,不仅惠及普通百姓,也提高商家的商品销量,达到双赢效果。京东平台每天就有固定场的秒杀,这个特效的实现可以通过以下4个步骤完成。 (1) 完成如图31所示京东秒杀页面设计,标识显示时间的位置。 (2) 定义函数,使用日期和时间对象获取客户端时间,并设置场次结束时间。 (3) 根据时间差换算成时、分、秒。 (4) 使用定时函数,每隔1秒重新调用一次函数。 日期和时间对象(Date对象)主要提供了获取和设置日期与时间的方法,JavaScript中提供了两个定时器函数: setTimeout()和setInterval()。 3.1.1Date对象的创建 要使用Date对象,必须先使用new运算符创建它,Date对象的构造函数通过可选的参数,可生成过去、现在和将来的Date对象,创建Date常见方式有3种。 1. 不带参数 var myDate=new Date(); 创建一个含有系统当前日期和时间的Date对象变量myDate。 2. 创建一个指定日期的Date对象 var myDate=new Date("2022/10/01"); 使用代表日期和时间的字符串创建一个特定日期的Date对象,上述语句创建了2022年10月1日的Date变量myDate。 3. 创建一个指定时间的Date对象 var myDate=new Date(2022, 6, 1, 10, 30, 20); 语句创建了一个包含确切日期和时间的Date变量myDate,即2022年6月1日10点30分20秒。 3.1.2Date对象的常用方法 Date对象提供了很多操作日期和时间的方法,方便程序员在脚本开发过程中简单、快捷地操作日期和时间。表31列出了其常用的方法。 表31Date对象常用方法 方法名 描述 getFullYear() 返回年份数 getMonth() 返回月份数(0~11)续表 方法名 描述 getDate() 返回日期数(1~31) getDay() 返回星期数(0~6) getHours() 返回时数(0~23) getMinutes() 返回分数(0~59) getSeconds() 返回秒数(0~59) getMilliseconds() 返回毫秒数(0~999) getTime() 返回对应日期基线的毫秒 toLocaleString() 返回日期的字符串表示,其格式根据系统当前的区域设置来确定 setDate() 设置 Date 对象中月的某一天(1~31) setFullYear() 设置 Date 对象中的年份(四位数字) setHours() 设置 Date 对象中的小时(0~23) setMilliseconds() 设置 Date 对象中的毫秒(0~999) setMinutes() 设置 Date 对象中的分钟(0~9) setMonth() 设置 Date 对象中的月份(0~11) setSeconds() 设置 Date 对象中的秒钟(0~59) setTime() 以毫秒设置 Date 对象 【实例31】模拟日历,每天打开这个页面都能定时显示年、月、日和星期几。 下面使用Date对象显示当前时间,实现代码如下: //1.创建一个当前日期的日期对象 var date = new Date(); //2.获取其中的年、月、日和星期几 var year = date.getFullYear(); var month = date.getMonth(); var hao = date.getDate(); var week = date.getDay(); //console.log(year+" "+month+" "+hao+" "+week); //3.赋值给div var arr = [ "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", ]; var div = document.getElementById("time"); div.innerText ="今天是:" + year + "年" + (month + 1) + "月" + hao + "日 " + arr[week]; 运行代码,效果如图32所示。 图32模拟日历 3.1.3任务实现 实现京东秒杀效果的操作步骤如下。 (1) 完成页面设计,美化页面,标识显示时间的位置,关键HTML代码和CSS样式如下。 HTML代码:
21:00点场 距结束