day07日期,对象,定时器,延时器

日期对象 Date


概述:date是用于表示日期时间的对象,他里面的主要方法是用于获取日期时间和设置日期时间。

date的声明

使用new Date来声明(不传参)

// 使用new关键词构建的都是对象 对象是引用数据类型

//不传参数获取的是当前的本地时间

vardate=newDate()//获取当前的本地时间

console.log(date);

传递字符串

//传递对应的string类型的参数 根据本地的日期时间格式传递

vardate=newDate('2000/10/9 12:00')

console.log(date);

// var date = new Date('2000:10:9 12/00') //识别不了

// console.log(date);

传递数值(传递是毫秒值 离1970/1/1 00:00:00的时间)

//传递一个数值 传递是毫秒值 根据格林兰治时间 1970/1/1 00:00:00向上递增

var date = new Date(1000)//在原本的格林兰治时间上递增一秒种

console.log(date);

传递多个数值

//传递对应的多个参数 年 月 日 时 分 秒 毫秒 可以省略

vardate=newDate(2000,11,12,12,12,12)//月份取值时0-11

console.log(date);

日期的比较和计算

日期在对应的比较和计算中会自动变成number类型的毫秒值(离格林兰治时间的毫秒值)

//date的计算

vardate=newDate()

vardate1=newDate('2022/10/1 11:41:00')

console.log(date-date1);//变成number类型

console.log(date+date1);//不会变成number

console.log(date>date1);//true

日期对象的方法

获取对应的日期时间(get开头)

var date = new Date()

//获取年

console.log(date.getFullYear());

//获取月

console.log(date.getMonth());//0-11 实际月份会比获取大1

//获取日

console.log(date.getDate());//当月的第几天

console.log(date.getDay());//星期几 星期天是第一天 0-6

//获取小时 0-23

console.log(date.getHours());

//获取分钟 0-59

console.log(date.getMinutes());

//获取秒钟 0-59

console.log(date.getSeconds());

//获取毫秒 0-1000

console.log(date.getMilliseconds());

//获取时间戳 离对应的格林兰治时间的毫秒值

console.log(date.getTime());

//静态方法 now

console.log(Date.now());

//辅助方法 utc国际标准时间 (上面的相关方法都有对应的utc方法)

console.log(date.getUTCFullYear());

设置对应的日期时间 (set开头)

//设置相关得方法

vardate=newDate()

//设置年份

date.setFullYear(2022)

//设置对应得月份

date.setMonth(11)//设置为12月

date.setMonth(13)//自动往递进 当前设置为2月 对应的年份就会往上加1

//设置对应的天数

date.setDate(39)//设置当月的第几天 超过当前月份的天数会自动向上递进 月份会+1

//设置对应的小时 最大为23 超过23 自动向上递进 天数会+1

date.setHours(30)

//设置相关分钟 向上递进 0-59 小时会+1

date.setMinutes(59)

//设置秒钟 跟分钟一样

date.setSeconds(59)

//设置毫秒值 0-999 向上递进

date.setMilliseconds(999)

console.log(date);

//根据对应的毫秒值设置对应的时间

date.setTime(1000)

console.log(date);

//设置对应的utc时间

date.setUTCDate(10)

console.log(date);

辅助相关方法 转为对应的string

console.log(date.toDateString());//将对应的日期转换string返回

console.log(date.toTimeString());//将对应的时间转换string返回

console.log(date.toLocaleString());//根据本地的格式 转为对应的字符串返回

console.log(date.toLocaleDateString());//根据本地的格式 将日期转为对应的字符串返回

console.log(date.toLocaleTimeString());//根据本地的格式 将时间转为对应的字符串返回

对象

概述:对象是一种引用数据类型。他可以存储对应的数据相关的方法(可以拥有相关的属性及对应的函数(行为))。对象里面构成是用key:value(键值对)构成的,一个对应的key对应一个value(key不能重复的 value是可以重复的)。

对象的声明

使用字面量 {}

varobj={

name:'jack',//对应的key是name value是jack 多个键值对使用,隔开

age:18

}

使用new关键词 Object (Object是所有的类和对象的父类 也就是Object是最大的对象

varobj=newObject()

obj.name='jack'

obj.age=18

对象的属性及相关的方法访问(查询)

使用对象名.属性名

varobj={

name:'jack',//对应的key是name value是jack 多个键值对使用,隔开

age:18,

sayHello:function(){

    console.log('hello')

   }

}

console.log(obj.name)//jack

console.log(obj.age)//18

//调用对应的sayHello方法

obj.sayHello()

使用对象名[属性名字符串]

varobj={

name:'jack',//对应的key是name value是jack 多个键值对使用,隔开

age:18,

sayHello:function(){

    console.log('hello')

   }

}

console.log(obj['name'])//jack

console.log(obj['age'])//18

//调用sayHello方法

obj['sayHello']()

对比的相关注意事项

//对象在比对的时候比对是对应的地址

console.log({}=={});//false

关于对象属性的增删改的相关操作

增 (就是使用对象名.属性名进行赋值)

varobj={}

obj.sex='男'//给对应的obj添加一个属性名字为sex

修改 (跟对应的增加操作一致 如果当前属性本身已经具备那么重新赋值就是修改)

varobj={

    age:18

}

obj.age=20//当前属性已经存在重新赋值就是修改

console.log(obj)

删除 (使用delete关键词)

varobj={

age:18,

sex:'男'

}

//删除对应得属性 使用delete关键词

deleteobj.sex//删除对应obj的sex属性

console.log(obj);//{age:18}

this

概述:this是一个特殊的对象,他类似于一个指针会指向对应的对象。(在对象的函数内那么对应的this就指向这个对象,在外面的函数内this就指向最顶层的对象window)。this指向当前调用者

所有的全局变量及全局声明的函数都是属于window的(window可以被省略)

varperson=newObject()

person.name='jack'

person.age=30

person.like='泡澡'

person.money=10000

person.print=function(){

console.log(`姓名 ${this.name}年龄 ${this.age}爱好 ${this.like}薪资期望 ${this.money}`);//this指向person

}

person.print()

//在外面的函数内容 this指向对应的window

functionfn(){

console.log(this);

}

fn()//所有的全局变量及全局声明的函数都是属于window

window.fn()//window可以被省略

vara=10

console.log(window.a);

定时器和延时器

概述:属于window的俩个方法,定时器和延时器是属于异步的行为,按照对应文档流顺序走的代码称为同步代码(他只有一个任务队列),异步代码不按照对应的文档流执行(他会重新开辟一个异步线程),你是没有办法知道他什么时候走完。同步代码比异步代码先执行。定时器是定时器执行的(执行多次),延时器是延时执行(执行一次)。

同步和异步

//同步比异步先执行

setInterval(function(){

console.log('世界');

},0);//就算对应的间隔时间为0他也是异步的

console.log('你好');//先你好再打印世界

定时器 setInterval(做动画)

//第一个参数是执行的函数 第二个对应定时的时间(毫秒值) 第三个传递给对应函数的参数

setInterval(handlerFunction,time,arg)

第一种写法(传递匿名函数)

setInterval(function(params){

    console.log(params)

},1000,'hello')

第二种写法 (传递具名函数)

functionfn(params){

console.log('hi'+params);

}

//第二种方式 传递具名函数

setInterval(fn,1000,'jack')

第三种方式 (传递字符串 在字符串里面写代码 不推荐)

//第三种方式 传递字符串(字符串里面书写代码)

setInterval('console.log("hello")',1000)

清除定时器 用于停止对应的定时器操作

clearInterval(对应的定时器id)//这个id就是对应的setInterval返回的number值

vartimer=setInterval(function(){

    console.log('hello')

},1000)

//清除对应的定时器

clearInterval(timer)

延时器 setTimeout (对应的等待)

概述:延时器时延迟执行 只执行一次 (用法和对应的setInterval一样的)

setTimeout(hanlderFunction,delay,arg)

//执行一次就结束 内存并不会释放

varid=setTimeout(function(){

console.log('三秒后执行');

//清除延时器

clearTimeout(id)

},3000)

总结

日期对象Date 用于获取和设置相关的日期时间

获取方法以get开头 设置方法以set开头

对应的获取月份的值是0-11 比实际月份值小1

对象的声明可以使用字面量{} 也可以使用new Object()

Object是最大的对象 所有的对象都是他的子类

对象里面的存储使用key:value 多个属性使用,隔开

获取对象里面的属性值可以通过对应的属性名来获取 对象.属性名 对象[属性名字符串]

delete 可以删除对象里面的属性

this指向调用者 在对象里面的函数调用者为对象 在外边的函数调用者为window(global对象 顶层对象)

所有的全局变量和全局声明方法都是属于window的 window可以通过对应的属性调用进行调用 window可以省略

setInterval和setTimeout是属于window的俩个方法 这个函数里面的this指向window

setInterval 属于定时器会定时执行 执行多次 如果需要停止使用clearInterval(根据id进行清除 id为setInterval的返回值)进行清除

setTimeout 属于延时器 延迟执行 只执行一次(使用方式和setInterval没有区别)使用对应clearTimeout可以清除对应的延时器(释放内存)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,635评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,628评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,971评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,986评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,006评论 6 394
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,784评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,475评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,364评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,860评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,008评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,152评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,829评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,490评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,035评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,156评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,428评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,127评论 2 356

推荐阅读更多精彩内容