学习Js-day07
2022/8/2 23:22:56
本文主要是介绍学习Js-day07,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今日学习内容⏲js中的日期,对象,定时器
日期及对象
<script> // 日期对象的定义(使用new关键词 // 1.获取当前的时间(本地的时间 var date = new Date()//不传参获取的就是当前时间 console.log(date); // 获取指定的时间 var date = new Date(123456)//一个参数毫秒值 将这个毫秒值去加上对应的1970.1.1 0:0:0 console.log(date); var date = new Date('2001/1/1 00:00:00')//指定一个字符串 来指定对应的时间 规定格式 console.log(date); var date = new Date(2000,10,5,12,15,15)//年月日时分秒 console.log(date); // 日期对象的方法 // 重点 月份(获取的月份比实际小1 // get获取时间 年月日时分秒星期 对应的时间戳 (毫秒值 离1970/1/1的毫秒值 var date = new Date() console.log(date.getFullYear()); console.log(date.getMonth());//最大11月,没有12月 console.log(date.getDate());//一个月中的第几天 console.log(date.getDay());//一个星期中的第几天 星期天是第一天0 0-11 console.log(date.getHours());//获取时间 24为0 0-23 console.log(date.getMinutes());//0-59 60为0 console.log(date.getSeconds());//0-59 console.log(date.getTime());//获取离1970/1/1的毫秒值 console.log(date.getTimezoneOffset());//获取时区 // set设置时间 date.setFullYear(1999,10,10);//同时设置年和月 date.setMonth(10,20)//同时设置月和天 date.setDate(30)//设置天 date.setHours(10,10,20,128)//分 秒 毫秒 console.log(date); // 转换的方法 // date.toDateString(); 以特定的格式显示星期几、月、日和年 // date.toTimeString(); 以特定的格式显示时、分、秒和时区 // date.toLocaleDateString(); 以特定地区格式显示年、月、日 // date.toLocaleTimeString(); 以特定地区格式显示时、分、秒 // date.toUTCString(); 以特定的格式显示完整的 UTC 日期: 年,月,日,时,分,秒。 var date = new Date() // 转为字符串 console.log(date.toString());//普通字符串转换 console.log(date.toDateString()); //以特定的格式显示星期几、月、日和年 console.log(date.toTimeString()); //以特定的格式显示时、分、秒和时区 console.log(date.toLocaleDateString()); //以特定地区格式显示年、月、日 console.log(date.toLocaleTimeString()); //以特定地区格式显示时、分、秒 console.log(date.toUTCString()); console.log(date.toLocaleString()); //以utc格式显示完整的 UTC 日期: 年,月,日,时,分,秒。 console.log(Date.parse("2012|12|12"));//说明时间是number值,可以相加减 console.log(Date.parse("2012/12/12"));//得到毫秒值 var current = new Date() var old = new Date(2015,12,12) console.log(current-old); // 对象 是一个引用数据类型,所有引用数据类型都是对象(使用new关键词开辟的内存空间 // 都是对象空间)Array(typeof是object)。 // 对象的定义: // 1.字面量的形式 var obj = {} //{}表示的是对象 // 2.new关键词来构建对象 var obj = new Object() // 对象的结构(容器 他具备存储数据的功能) // 对象的结构是key:value 的形式体现(键值对的形式key是唯一的value可以是任意类型) var obj = {name:'jack',age:18,isGirl:true,likeFoods: ['西瓜','南瓜','北瓜'],likeUser:{name:'rose',age:15}} console.log(obj.name);//第一种访问jack console.log(obj['name']);//第二种访问jack console.log(obj.likeFoods[1]);//对象里面嵌套数组 南瓜 console.log(obj.likeUser.age);//对象里面嵌套数组 15 // 添加和修改 其实就是设置对应的值 // 如果当前这个key在对应的对象里面可以找到他就修改 // 如果找不到就是添加 var obj2 ={name:'hello'} obj2.age = 10; obj2.name = 'world' console.log(obj2); // 删除里面的属性 删除操作 remove delete delete obj2.name console.log(obj2); </script>
this关键字
<script> function sayHell0(){ console.log(this);//window } //函数的this 指向他的调用者 谁调用这个函数 this就是指向谁 // 全局调用的 js的顶层对象 全局对象window 也就是全局写的变量 以及全局调用的方法都是window的 sayHell0()//window调用的this指向window sayHello()==window.sayHello() var a = 10//全局变量a 相当于window的一个属性以及属性值 a:10 console.log(window['a']);//10 //也就是意味在全局声明的内容都是window的内容 // 也就是全局调用的内容里面的this属于window console.log(this);//window var obj = { name:'jack', sayHi:function(){ console.log(this);//{name: 'jack', sayHi: ƒ} console.log(this==obj);//true console.log(this===obj);//true } } obj.sayHi() </script>
日期练习:
1.显示当前时间(显示格式: 2016年 11月 11日 11时 11分 11秒)
2.判断两个日期相差的天数(可先求毫秒数差,再转换成天)
3.根据getDate()和setDate(), 封装一个函数afterDate(date,n),得到日期date的n天后的日期
<script> function formatCurrentTime(){ var currentTime = new Date() return `${currentTime.getFullYear()}年${currentTime.getMonth()+1}月${currentTime.getDate()}日${currentTime.getHours()}时${currentTime.getMinutes()}分${currentTime.getSeconds()}秒` } console.log(formatCurrentTime()); </script> <script>//判断两个日期之间相差的天数 var date = new Date() var date1 = new Date('2018/12/12 12:12:12') function getDay(date1,date2){ var ms = Math.abs(date1-date2) // 将毫秒值转为天 var day = parseInt(ms/1000/60/60/24) return day } console.log(getDay(date,date1)); </script> <script>//根据函数得到当前日期n天后的日期 function afterDate(date,n){ date.setDate(date.getDate()+n) console.log(date); } afterDate(date,10) </script>
对象练习
<script> var people = { name:'小刘', age:'21', hobby:'make money', wish : '1.8k', print:function(){ console.log(`姓名:${this.name} 年龄:${this.age} 爱好:${this.hobby} 期望薪资:${this.wish}`); } } people.print() </script> <script> var hammer={ width : 100, height : 100, weight : 100, action:function(){ console.log('可以锤钉子'); } } </script> <script> var car = { speed:'50km/h', runOnRoad:function(Road){ console.log('跑完全程需要'+parseInt(Road.length)/parseInt(this.speed)+'h'); } } var Road = { length:'1000km' } car.runOnRoad(Road) </script>
定时器
<script> // setTimeout(延时器 延迟执行里面的代码 只执行一次 // window.setTimeout(函数,延迟的时间(毫秒值),传递的参数) //window可以省略 // 延时器 延迟执行 异步的 (多线程操作 开一个线程)(同步单线程操作 顺序执行) // js引擎的解析为单线程 同步的内容相当于加了把锁(同步锁) 异步就不是顺序执行 console.log('hello world'); setTimeout(function(){ console.log('hello'); },0)//异步的 eg:支付的消息通知,关闭广告 销毁等 console.log('hello jack'); // 代码执行的顺序是先同步再异步 setTimeout(function(arg,message){ console.log(arg,message); },1000,'hanger','yes')//参数可以任意的传,对应的函数内需要用形参去接收 // clearTimeout(延时器id)清除延时器 销毁对应的延时器 var id = setTimeout(function(){ console.log('hello'); },1000) clearTimeout(id) </script> <script> // setInterval 定时器 定时去执行里面的代码 执行多次 // window.setInterval(执行的函数,执行一次的时间,参数) 他也是异步操作 // 不要在定时器里面声明变量 会无限执行 /* var i = 0 var id = setInterval(function(){ console.log('定时器执行'); i++ if(i==10){ clearInterval(id) } },1000) setInterval(function(arg){ console.log(arg); },100,'hello') */ // 倒计时 轮播图的动画(js) // 先走同步 再走异步 // 不要在setInterval里面套setInterval // 如果setInterval 套了setInterval </script>
计时器练习!!
<!DOCTYPE html> <html lang='en'> <head> <meta charset='UTF-8'> <meta http-equiv='X-UA-Compatible' content='IE=edge'> <meta name='viewport' content='width=device-width, initial-scale=1.0'> <title>Document</title> <link rel='stylesheet' href=''> </head> <body> <span id="showTime">00时00分00秒</span> <input type="button" value="点我开始计时" id="btn"> </body> </html> <script> var showTime = document.getElementById('showTime') var action = document.getElementById('btn') function timing(){ var i = 0 var s = 0 var m = 0 var h = 0 setInterval(function(){ i++ s = fn(parseInt(i%60)) m = fn(parseInt(i/60%60)) h = fn(parseInt(i/3600%24)) showTime.innerHTML = `${h}时:${m}分:${s}秒:` },1000) } function fn(number){ if(number<10){ return '0'+number } return number } btn.onclick = timing </script>
这篇关于学习Js-day07的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程