第五课时 JavaScript对象编程(一)
一、JavaScript对象
在JavaScript的世界里,一切都是对象。
但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用typeof操作符获取对象的类型,它总是返回一个字符串:
typeof 123; // 'number'
typeof NaN; // 'number'
typeof 'str'; // 'string'
typeof true; // 'boolean'
typeof undefined; // 'undefined'
typeof Math.abs; // 'function'
typeof null; // 'object'
typeof []; // 'object'
typeof {}; // 'object'
JavaScript中内置了一些标准对象供直接使用,现在来说说第一个日期对象Date
二、Date对象
JS内置了核心对象Date,该对象存储的日期为自 1970 年 1 月 1 日 00:00:00 以来的毫秒数,并且提供了一系列处理时间与日期方法
- Date对象的创建
可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:
格式一:var myDate = new Date();
//创建当前日期和时间的Date对象
格式二:new Date(milliseconds);
//以1970-1-1 00:00:00 GMT+0000为基准,按经过的毫秒数创建日期
例如:
new Date(1000) 创建的日期是1970-1-1 00:00:01 GMT+0000
格式三:new Date(dateString);
//以日期字符串为参数进行创建,会自动解析日期字符串
支持各种日期格式
时间可选,默认为0
时间格式固定,使用冒号隔开
“2000-1-1”
“2000/1/1”
“2000 1 1”
“2000 Jan 1”
“2000-1-1 23:59”
“2000-1-1 23:59:59”
“2000-1-1 23:59:59:999”
格式四:
new Date(year, monthIndex [, day [, hours [, minutes [, seconds [, milliseconds]]]]]);
//除年,月外,其他参数可选,不输入则默认为0
注意:JavaScript的月份范围1-12月用整数表示对应是0~11
- Date对象常用方法
| 方法名 | 描述 |
|---|---|
| getYear() | 返回年份数 当前年份-1900 |
| getFullYear() | 返回年份数 |
| getMonth() | 返回月份数(0~11) 0表示1月 |
| getDate() | 返回日期数(1~31) |
| getDay() | 返回星期数(0~6) 0表示星期天 |
| getHours() | 返回时数(0~23) |
| getMinutes() | 返回分数(0~59) |
| getSeconds() | 返回秒数(0~59) |
| getMilliseconds() | 返回毫秒数(0~999) |
| getTime() | 返回对应日期基线的毫秒 |
| toGMTString() | 以GMT格式表示日期对象 |
| toLocaleString() | 返回日期的字符串表示,其格式根据系统当前的区域设置来确定 |
- 日期比较
在JavaScript中后面的日期比前面的日期大,比如2021/2/1 要大于 2021/1/1
代码如下(示例):
var x=new Date();
x.setFullYear(2021,1,1);
var today = new Date();
if (x>today)
{
alert("今天是2021年1月1日之前");
}
else
{
alert("今天是2021年1月1日之后");
}
运行结果:

三、定时器函数
定时器函数是JavaScript中的内置函数,可直接调用
1.setTimeout()
用于在指定的毫秒数后调用函数或计算表达式
调用格式如下:
setTimeout("调用的函数名称或表达式",等待的毫秒数)
注意:在调用setTimeout()函数时,有几种不同的写法
- 调用函数(不加引号)
setTimeout(hello, 3000)
//仅填写函数名,不能加(),否则会立即执行
function hello() {
alert("hello");
}
- 调用函数(加引号)
setTimeout("hello()", 3000)
function hello() {
alert("hello");
}
- 调用匿名函数(不加引号)
setTimeout(function(){
alert("hello");
}, 3000)
- 调用表达式(加引号)
setTimeout("alert('hello')", 3000)
- setTimeout()调用自身所在函数可实现周期执行的效果
实现代码如下:
function timer(){
console.log("1");
setTimeout(timer,1000)
}
timer();
运行效果:阴影背景的数字表示输出1的次数,每秒增加一次

2. setInterval()
setInterval()可按照指定的周期(毫秒)来调用函数或计算表达式
调用格式如下:
setInterval("调用的函数名称或表达式",等待的毫秒数)
例如:
<p id="time"></p>
<script type="text/javascript">
function timer(){
console.log("1");
}
setInterval(timer,1000)
</script>
运行结果:

3.清除定时器
clearInterval()、clearTimeout()函数可以清除定时器
- setTimeout()产生的定时器会在执行后自动清除
- setInterval()产生的定时器不会自动清除
代码示例:
<p id="text"></p>
<input type="button" name="stop" id="stop" value="stop" onclick="stop()" />
<script>
var num = 0;
var timer = setInterval(timer, 1000)
function timer() {
num++;
document.getElementById("text").innerHTML = num;
}
function stop(){
clearInterval(timer);
}
</script>
本文介绍了JavaScript中的对象概念、Date对象的使用方法及定时器函数setTimeout和setInterval的应用技巧。
444

被折叠的 条评论
为什么被折叠?



