js第九天

文章目录


前言

今天学习的是javascript中的Data对象,以及Javascript三大组成部分中的BOM游览器对象模型部分,学习这两部分还是按照之前的步骤,从它是做什么的,有什么功能、创建方式、属性以及方法几个方面来学习。


一、Date 对象

Date:日期时间对象

1.作用:处理日期对象

2.创建对象:

var date = new Date()     //构造函数方式

                     实例对象     对象名    引用变量

 显示当前时间,以中国标准时间形式显示

创建指定时间的对象:

var data = new Data(2021,10,01)  或者

var data = new Data('2021-10-01)

 js常用处理时间日期库    http://momentjs.cn/

3.Data方法

1.getFullYear     获取指定字符串中的年份

代码如下(示例): 

<script>
        var currentTime = new Data()    //获取当前时间      
        var year = currentTime.getFullYear()    //获取当前时间的年份    
        console.log(year)                       //控制台输出当前年份

</script>

2.getMonth              获取指定字符串中的月份(注意:计算机中的月份是从0开始)

 代码如下(示例): 

<script>
     var currentTime = new Data()                 //获取当前时间                        
     var month = currentTime.getMonth()         //获取当前时间的月份 
     console.log(month)                        //控制台输出当前月份

</script>

3.getHours              获取指定字符串中的小时 

 代码如下(示例): 

<script>
     var currentTime = new Data()                 //获取当前时间                        
     var hours = currentTime.getHours()         //获取当前时间的小时数 
     console.log(hours)                        //控制台输出当前小时数

</script>

4.getData               获取指定字符串中的哪一天

 代码如下(示例): 

<script>
     var currentTime = new Data()                 //获取当前时间                        
     var data = currentTime.getData()         //获取当前时间的几号 
     console.log(data)                        //控制台输出当前几号

</script>

5.getDay                获取指定字符串中当前日期中一周中的哪一天(周日是0,周六是6)

 代码如下(示例): 

<script>
     var currentTime = new Data()                 //获取当前时间                        
     var day = currentTime.getDay()         //获取当前时间的星期数 
     console.log(day)                        //控制台输出当前星期几(周日是0,周六是6)

</script>

6.getMinutes         获取指定字符串中的哪一分钟

 代码如下(示例): 

<script>
     var currentTime = new Data()                 //获取当前时间                        
     var minutes = currentTime.getMinutes()         //获取当前时间的分钟数
     console.log(minutes)                        //控制台输出当前分钟

</script>

7.getSeconds        获取指定字符串中的哪一秒钟

  代码如下(示例): 

<script>
     var currentTime = new Data()                 //获取当前时间                        
     var seconds = currentTime.getSeconds()         //获取当前时间的秒钟数 
     console.log(seconds)                        //控制台输出当前秒钟数

</script>

8.getTime             获取指定字符串中的哪一毫秒

代码如下(示例): 

<script>
     var currentTime = new Data()                 //获取当前时间                        
     var time = currentTime.getTime()         //获取当前时间的毫秒数
     console.log(time)                        //控制台输出当前时间的毫秒数

</script>

4.Data案例

(1)格式化时间

Thu  Aug  25  2022  09:30:30   GMT+0800(中国标准时间形式)

===》2022年8月27日       10时:7分:54秒

===》2022/8/27    10:7:54

===》2022-8-27       10:7:54

代码如下(示例):  

  <script>
        function formateCurrentTime(type) {
            var currentTime = new Date() //获取时间
            var year = currentTime.getFullYear() //获取年份
            var month = currentTime.getMonth() //获取月份
            var date = currentTime.getDate() //获取日期
            var hours = currentTime.getHours() //获取小时
            var minutes = currentTime.getMinutes() //获取分钟
            var second = currentTime.getSeconds() //获取秒钟

            switch (type) {
                case 1:
                    return `${year}年${month}月${date}日 ${hours}时${minutes}分${second}秒`    //如果formateCurrentTime函数实参为1,输出输出2022年7月27日 10时7分54秒
                case 2:
                    return `${year}/${month}/${date} ${hours}:${minutes}:${second}`        //如果formateCurrentTime函数实参为1,输出2022/8/27日 10:7:54
                case 1:
                    return `${year}-${month}-${date} ${hours}:${minutes}:${second}`        //如果formateCurrentTime函数实参为1,输出 2022-8-27  10:7:54
                default:
                    return `${year}-${month}-${date} ${hours}:${minutes}:${second}`        //如果formateCurrentTime函数实参为其他值,输出 2022-8-27  10:7:30

            }
        }
        var timeStr = formateCurrentTime(1)   //调用formateCurrentTime函数
        document.write(timeStr)     //输出2022年7月27日 10时7分54秒
    </script>

(2)计算时间差

我们现在计算一下 2019-01-01 00:00:00 到 2019-01-03 04:55:34 的时间差

①先获取两个时间点到 格林威治时间(1970年1月1日(00:00:00 GMT)) 的毫秒数

②两个时间相减,得到两个时间点之间相差的毫秒数

③毫秒转换成天

④把我们计算的毫秒数换算成时间

代码如下(示例):  

 <script>
        /*
        2019-01-01 00:00:00 到 2019-01-03 04:55:34 的时间差
                  1计算两个时间的毫秒差值
                  2.换算:毫秒 ===》秒/分/时/天/年
        */

        function timeDifference(){
            var time1=new Date('2019-01-01 00:00:00')
            var time2=new Date('2019-01-03 04:55:34')
            var time=time2.getTime()  - time1.getTime()    //计算总的毫秒差

            //换算天数   相差的总毫秒 / 一天的总毫秒 =相差天数(向下取整)
            var day = time / (1000*60*60*24)
            day = Math.floor(day)
            console.log(day)      //控制台输出相差的天数

            //换算小时  (相差的总毫秒-相差天数的总毫秒) / 一个小时的总毫秒 =相差的小时数
            var hoursTime=time-day *(1000*60*60*24)     //(相差的总毫秒-相差天数的总毫秒)
            var hours=hoursTime /(1000*60*60)
            hours=Math.floor(hours)
            console.log(hours)     //控制台输出相差的小时数

            //换算分钟  (总小时的毫秒数 - 相差小时的毫秒数) / 一分钟的毫秒数 = 相差的分钟数
            var minutesTime = hoursTime -hours*(1000*60*60)
            var minutes = minutesTime / (1000*60)
            minutes=Math.floor(minutes)
            console.log(minutes)    //控制台输出相差的分钟数

            //换算秒钟 (总分钟的毫秒数-相差分钟的毫秒数) /一秒钟的毫秒数 = 相差的秒钟数
            var secondTime=minutesTime- minutes*(1000*60)
            var second=secondTime / 1000
            console.log(second)     //控制台输出相差的秒钟数


            console.log(`2019-01-01 00:00:00 到 2019-01-03 04:55:34相差了${day}天${hours}时${minutes}分${second}秒`) //用模板字符串输出两个时间相差的天/时/分/秒
        }
        timeDifference()
    </script>


二、BOM 游览器对象模型

1.作用:提供操作游览器的能力

使用:window 对象称为游览器窗口对象

2.创建对象:系统创建window

3.子对象

①history                       历史记录对象

②location                      地址栏对象(位置对象)

③document                   文档对象  HTML文档  (重点)

④navigator                    包含游览器相关信息

⑤screen                        用户显示屏幕相关属性

4.常用方法

(1)alert()   信息提示框,带一个提示信息与一个确定按钮

代码如下(示例):  

 <script>
        window.alert('今天是周四')

        //alert('今天是周四')  使用window根对象属性或方法时,window对象可以省略
    </script>

运行结果如下:

 (2)confirm()   信息提示框,带提示信息,确定按钮和取消按钮(在项目中,多用于删除信息确定)

代码如下(示例):  

  
<script>
        
        function textConfirm(){
            var isOK=confirm('确定删除记录吗?')
            if(isOK){
                window.alert('删除成功')
            }else{
                window.alert('取消删除')
            }
        }
        textConfirm()
    </script>

运行结果如下:

 (3)prompt()     信息输入框

代码如下(示例):  

  
<script>
        function testPrompt(){
            var score=prompt('请输入你的成绩')   //输出类型为String
             // score=Number(score)         //要做加运算,要先把输入转为数字类型
            var newScore=score+10      //当为做 - 运算时,正常输出80,隐式类型转换
            alert(newScore)        //当输入成绩为90,输出9010
        }
        testPrompt()
    </script>

运行结果如下:

 

 (4)close()                   关闭游览器窗口

(5)open()                    打开游览器窗口

语法:open(url,窗口名称,参数)

代码如下(示例):  

<script>
        function testOpen(){
            window.open('https://music.163.com/','网易云音乐','')
        }
        testOpen()
    </script>

(6) setTimeout           倒计时定时器

代码如下(示例):  

<script>
          var timer=window.setTimeout(function(){       //启动倒计时定时器
            alert('今天天气降温了!')
            },2000)                          //2000为时间参数,单位为毫秒
            
        // clearTimeout(timer)       //清除定时器

    </script>

(7)setInterval()           循环定时器

代码如下(示例):   

<script>
          function textSetInterval(){
            var n=6
            var timer=window.setInterval(function(){
                if(n == 0){
                    clearTimeout(timer)    //清除定时器
                }
                alert('啦啦啦~~')
                n--
            },2000)      //循环执行
        }
        textSetInterval()
    </script>

五、window属性和方法使用(window子对象)

(1)history   提供操作历史记录的能力

1.创建对象   window.history   (直接使用)

2.方法

①back()             加载history对象列表中的前一个url(后退)

②forward()             加载history对象列表中的下一个url(前进) 

③go()                      加载history对象列表中的任何一个url(正数代表前进,负数代表后退)       

history.back()               等价于           history.go(-1)

history.forwrad()               等价于           history.go(1)

(2)location      地址栏对象,位置对象

1.常用属性

location.href       作用:①获取当前页面url地址      ②设置 跳转到对应页面

代码如下(示例):   

    <button onclick="getUrl()">获取当前页面url地址</button>
    <button onclick="setUrl()">设置url</button>
    <button onclick="location.reload()">刷新</button>

    <script>
         function getUrl(){
             var url = location.href  //获取当前url地址
             document.write(url)
         }
         function setUrl(){
              location.href = 'https://music.163.com/'   //设置地址
         }
         
    </script>

 2.方法

reload           刷新页面

语法:loaction.reload()

(3) window 对象

1.获取游览器窗口尺寸

window.innerHeight     //获取高度

window.innerWidth     //获取宽度

2.游览器onscroll事件

window.οnscrοll=function(){    //游览器滚动条滚动时执行代码

   //执行代码

}

3.游览器滚动的距离  scrollTop (获取页面向上滚动的距离)

scrollTop (获取页面向上滚动的距离)有两种方式:

①document.body.scrollTop 

②document.documentElemment.scrollTop

 代码如下(示例):  

<script>
        // 浏览器滚动条滚动时执行函数代码
        window.onscroll = function(){
            // console.log('scrollTop :', document.documentElement.scrollTop )
            // console.log('body ',document.body.scrollTop);

            var scrollTop = getScollTop()
            console.log(scrollTop)
        }

        function getScollTop(){
            // 逻辑或, 前面有值(true) 直接返回,否则返回后面的值
            return document.documentElement.scrollTop || document.body.scrollTop
        }

        function setTop(top){
            document.documentElement.scrollTop = top
        }

        


      
    </script>

示例2:慢慢回到顶部,每次上升150px

 代码如下(示例):  

<style>
			* {
				padding: 0;
				margin: 0;
			}
			div {
				background-color: skyblue;
				height: 1200px;
			}
			div img {
				max-width: 100%;
			}
			button {
				position: fixed;
				bottom: 20px;
				right: 30px;
			}
		</style>
<body>
		<div>
			<img src="./image/jingdong.jpg" alt="" />
		</div>
		<button onclick="backTop()">回到顶部</button>

		<script>
			function backTop() {
				var timer = setInterval(function () {
					var height = document.documentElement.scrollTop 
					document.documentElement.scrollTop = height - 150 
                    if(height <= 0){
                        clearInterval(timer) // 结束定时器
                    }
				}, 100)

			}
		</script>
	</body>


总结

以上就是今天要讲的内容,本文仅仅简单介绍了Date日期时间对象和BoM的方法属性,而这两部分在js中是非常重要的,在以后的项目中也会常用到,特别是倒计时定时器与循环定时器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值