JS日期、对象和定时器

142 阅读4分钟

Date对象

Date类型使用自UTC(Coordinated Universal Time,国际协调时间) 1970年1月1日午夜(零时)开始经过的毫秒数来保存日期。Date类型保存的日期能够精确到1970年1月1日之前或之后的 285616年。

Date对象的创建

构造函数创建日期

var date = new Date();

var date = new Date(); //当前的时间
console.log(typeof date); //object

创建日期,并指定日期

var date=new Date("2023-9-12 12:12:12:12");//采用"-"分隔
var date=new Date("2023/9/12 12:12:12:12");//采用"/"分隔
var date=new Date(2023,8,12,12,12,12,12);//月份是从0开始的

日期对象的方法

  • setDate() / getDate(); 从Date对象中返回一个月中的某一天(1~31)
  • getDay(); 从Date对象返回一周中的某一天(0~6)
  • set / getMonth(); 从Date对象中返回月份(0~11)
  • set / getFullYear(); 从Date对象以四位数返回年份
  • set / getHours(); 返回Date对象的小时(0~23)
  • set / getMinutes(); 返回Date对象的分钟(0~59)
  • set / getSeconds(); 返回Date对象的秒数(0~59)
  • set / getMilliseconds(); 返回Date对象的毫秒
  • set / getTime(); 返回1970年1月1日至今的毫秒数
  • getTimezoneOffset(); 返回本地时间与格林尼治标准时间(GMT)的分钟差
var date=new Date();
//年
console.log(date.getYear());//需要加1900才会变成正确的年份
console.log(date.getFullYear());
//月
console.log(date.getMonth()+1);//月份默认从0开始,所以得加上1才能显示正确的月份
//日
console.log(date.getDate());
//星期
console.log(date.getDay());
//时
console.log(date.getHours());
//分
console.log(date.getMinutes());
//秒
console.log(date.getSeconds());
//毫秒
console.log(date.getMilliseconds());//1000毫秒=1秒
//时间戳,从指定日期到现在的毫秒数
console.log(date.getTime());
console.log(date.valueOf());
console.log(Date.now());
//把一个指定日期转换成时间戳
console.log(Date.parse("2023-9-12 12:12:12:12"));

对象Object

对象Object 是一种引用数据类型
在 ECMAScript 中对象可以存储变量函数(数据和功能)

创建对象

构造函数创建对象

var obj = new Object();

new关键字可以省略
var obj=Object(); //省略了new关键字,不建议

//1.创建一个空对象
var person = new Object()

//2.给空对象添加属性和值
//      key    value
person.name = "刘亦菲";
person.age = 18;
person.sex = "女";

//3.查看某一个属性
console.log(person.name);//刘亦菲

//4.修改
person.name = "刘诗诗" //修改1个数据

字面量方式创建对象

var obj = {
name : "刘亦菲", //创建属性字段,最后加逗号
age : 18 ,
sex : "女"
};

//1.创建一个对象并添加属性
var person = {
    name: "刘亦菲",
    age: 18,
    sex: "女"
}

//2.修改属性
person.age = 30

//3.查看 
// 查看某属性的值
console.log(person.age);//30

对象的其他特性

1. 属性字段也可以使用字符串形式

var box={ 
    "name" : "张三",     //也可以用字符串形式 
    "age" : 28
};

2. 两种属性输出方式

console.log(box.age); //点表示法输出
console.log(box["age"]); //中括号表示法输出,注意引号

3. 给对象创建方法

方式一:

var obj = {
    run: function () {   //对象中添加方法(函数)run
        return "正在跑步..";
    }
}
obj.run();    //调用对象中的方法

方式二:

var obj = {
    run() {   //对象中添加方法(函数)run
        return "正在跑步..";
    }
}
obj.run();    //调用对象中的方法

4. 使用 delete 删除对象属性 或 方法

delete obj.name; //删除属性
delete obj.run; //删除方法

4. 遍历对象

for (var key in obj) {
    //将对象中的键和值都遍历输出
    console.log(key, obj[key]);//这里得使用 '[]'
}

定时器

定时器 setInterval

setInterval(): 定时器方法, 可按照指定的周期(以毫秒计)来调用函数或计算表达式

创建定时器

setInterval(code,millisec)
code: 要调用的代码块或者函数
millisec: 是周期性执行代码块或函数的间隔,以毫秒计
方法会返回定时器的序列号,默认从1开始

var timer;
//语法1
// timer=setInterval("console.log('你好!某某某')",1000);

//语法2
timer=setInterval(function(str){
    console.log("你好!"+str);
},1000,"某某某")

关闭定时器

clearInterval(序列号) //清除定时

setInterval()方法会不停地调用函数,直到 clearInterval()被调用或窗口被关闭。

var timer=setInterval("console.log('你好!某某某')",1000);//创建定时器
clearInterval(timer);//关闭定时器

延时器 setTimeout

setTimeout(): 指定的时间过后执行一次代码

创建延时器

setTimeout(code,millisec)
code: 要调用的代码块或者函数
millisec: 指定的时间,以毫秒计
方法会返回延时器的序列号,默认从1开始

var timer;
timer=setTimeout(function(str){
    console.log(str+"我出现了!");
},3000,"三秒后")

取消延时器

clearTimeout(序列号);

同步与异步

//同步:按照顺序一步一步的执行
//从上往下执行,就是同步的
console.log(111);
console.log(222);
console.log(333);

console.log("-------------------------");

//异步:多任务多线程,可以按照其它的顺序执行。
console.log(1111);
//被推入执行队列中,等待被执行
setTimeout(function(){
    console.log(2222);
},0)
console.log(3333);

image.png