JavaScript对象编程

本文介绍了JavaScript中的对象概念、Date对象的使用方法及定时器函数setTimeout和setInterval的应用技巧。


一、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()函数时,有几种不同的写法

  1. 调用函数(不加引号)
setTimeout(hello, 3000)
//仅填写函数名,不能加(),否则会立即执行  
function hello() {  
    alert("hello");  
} 

  1. 调用函数(加引号)
setTimeout("hello()", 3000)  
function hello() {  
    alert("hello");  
} 
  1. 调用匿名函数(不加引号)
setTimeout(function(){  
    alert("hello");  
}, 3000)
  1. 调用表达式(加引号)
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()函数可以清除定时器

  1. setTimeout()产生的定时器会在执行后自动清除
  2. 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> 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值