老己的JavaScript API笔记4

29 阅读5分钟

JavaScript API知识笔记 第四天

一、日期对象

日期对象:用来表示时间的对象。

作用:可以得到当前系统时间。

1.实例化

在代码中发现了 new 关键字时,一般将这个操作称为实例化。

创建一个时间对象并获取时间:

获得当前时间:

const date = new Date()

获得指定时间:

const date = new Date('2026-1-23')

2.时间对象方法

方法作用说明
getFullYear()获得年份获取四位年份
getMonth()获得月份取值为 0 ~ 11
getDate()获取月份中的每一天不同月份取值也不相同
getDay()获取星期取值为 0 ~ 6
getHours()获取小时取值为 0 ~ 23
getMinutes()获取分钟取值为 0 ~ 59
getSeconds()获取秒取值为 0 ~ 59

案例

页面显示时间

需求:将当前时间以:YYYY-MM-DD HH:mm 形式显示在页面 2008-08-08 08:08

①:调用日期对象方法进行转换

②:记得数字要补0

③:字符串拼接后,通过 innerText 给 标签

const div=document.querySelector('div')
    function getTime(){
      const date = new Date()
      let y = date.getFullYear()
      let mon = date.getMonth() + 1
      let d = date.getDate()
      let h = date.getHours()
      let m = date.getMinutes()
      let s = date.getSeconds()
      y = y < 10 ? '0' + y : y
      mon = mon < 10 ? '0' + mon : mon
      d = d < 10 ? '0' + d : d
      h = h < 10 ? '0' + h : h
      m = m < 10 ? '0' + m : m
      s = s < 10 ? '0' + s : s
      return `${y}-${mon}-${d} ${h}:${m}:${s}`
    }
    div.innerHTML=getTime()

3.时间戳

时间戳是指1970年01月01日00时00分00秒起至现在的毫秒数,它是一种特殊的计量时间的方式

算法:

-将来的时间戳 - 现在的时间戳 = 剩余时间毫秒数

-剩余时间毫秒数 转换为 剩余时间的 年月日时分秒 就是 倒计时时间

-比如 将来时间戳 2000ms - 现在时间戳 1000ms = 1000ms

-1000ms 转换为就是 0小时0分1秒


三种方式获取时间戳:

1.使用 getTime() 方法
const date=new Date()
console.log(date.getTime())
2.+new Date()——快速便捷
console.log(+new.Date())
3.使用 Date.now()

无需实例化,但是只能得到当前的时间戳,而前面两种可以返回指定时间的时间戳

console.log(Date.now())

案例

毕业倒计时效果

需求:计算到下课还有多少时间

①:用将来时间减去现在时间就是剩余的时间

②:核心: 使用将来的时间戳减去现在的时间戳

③:把剩余的时间转换为 天 时 分 秒

const div = document.querySelector('div')
    function getDate() {
      const future = +new Date('2026-1-25 17:30:00')
      const now = +new Date()
      const time = (future - now) / 1000
      let d = parseInt(time / 60 / 60 / 24)
      let h = parseInt(time / 60 / 60 % 24)
      let m = parseInt(time / 60 % 60)
      let s = parseInt(time % 60)
      d = d < 10 ? '0' + d : d
      h = h < 10 ? '0' + h : h
      m = m < 10 ? '0' + m : m
      s = s < 10 ? '0' + s : s
      return div.innerHTML = `${d}${h}${m}${s} 秒`
    }
    getDate()
    setInterval(getDate, 1000)

二、节点操作

1.DOM节点

DOM树里每一个内容都称之为节点

节点类型:

-元素节点♥

·所有的标签 比如 body、 div

·html 是根节点

-属性节点

·所有的属性 比如 href / class属性

-文本节点

·所有的文本

2.查找节点

通过节点关系来查找节点

-父节点查找

·parentNode 属性

·返回最近一级的父节点 找不到返回为null

子元素.parentNode

案例

关闭二维码案例

需求:关闭二维码案例

const box1 = document.querySelector('.box1')
    box1.addEventListener('click', function () {
      box1.parentNode.style.display = 'none'
    })

-子节点查找

1.childNodes

·获得所有子节点、包括文本节点(空格、换行)、注释节点等

2.children 属性 (重点)

·仅获得所有元素节点

·返回的还是一个伪数组

父元素.children

-兄弟关系查找

1.下一个兄弟节点

nextElementSibling 属性

2.上一个兄弟节点

previousElementSibling 属性

3.增加节点

(1)创建节点

创造出一个新的网页元素,再添加到网页内,一般先创建节点,然后插入节点

document.createElement('标签名')
(2)追加节点

要在界面看到,还得插入到某个父元素中

-插入到父元素的最后一个子元素:

父元素.appendChild(要插入的元素)

-插入到父元素中某个子元素的前面:

父元素.insertBefore(要插入的元素,在哪个元素前面)

案例

需求:按照数据渲染页面

①:准备好空的ul 结构

②:根据数据的个数,创建一个新的空li

③:li里面添加内容 img 标题等

④:追加给ul

const ul=document.querySelector('.clearfix')
        for(let i=0;i<data.length;i++){
          const li=document.createElement('li')
          ul.appendChild(li)
          li.innerHTML=`<a href="#">
                        <img src=${data[i].src} alt="">
                        <h4>
                            ${data[i].title}
                        </h4>
                        <div class="info">
                            <span>高级</span> • <span>${data[i].num}</span>人在学习
                        </div>
                    </a>`
        }

只展示核心部分

(3)克隆节点

复制一个原有的节点,把复制的节点放入到指定的元素内部

元素.cloneNode(布尔值)

cloneNode会克隆出一个跟原标签一样的元素,括号内传入布尔值

-若为true,则代表克隆时会包含后代节点一起克隆

-若为false,则代表克隆时不包含后代节点

-默认为false

4.删除节点

JavaScript 原生DOM操作中,要删除元素必须通过父元素删除

语法:

父元素.removeChild(要删除的元素)

注:

-如不存在父子关系则删除不成功

-删除节点和隐藏节点(display:none) 有区别的: 隐藏节点还是存在的,但是删除,则从html中删除节点

三、M端事件

触屏事件 touch(也称触摸事件)

常见的触屏事件:

image.png

四、JS插件

-插件: 就是别人写好的一些代码,我们只需要复制对应的代码,就可以直接实现对应的效果

-学习插件的基本过程

·熟悉官网,了解这个插件可以完成什么需求 www.swiper.com.cn/

·在线演示,找到符合自己需求的demo www.swiper.com.cn/demo/index.…

·查看基本使用流程 www.swiper.com.cn/usage/index…

·查看APi文档,去配置自己的插件 www.swiper.com.cn/api/index.h…

·注意: 多个swiper同时使用的时候, 类名需要注意区分