J S笔记

JavaScript基础与应用教程

JSday5

1-随机数函数

  //左闭右开 能取到0 但取不到1 中间的随机一个小数

            console.log((Math.random()))

            //0-10之间的整数

            console.log(Math.floor(Math.random()*11))

            let arr=['red','green','blue']

            let random=Math.floor(Math.random()*arr.length)

            //console.log(random)

            console.log(arr[random])

            //生成N-M之间的随机数

            //Math.floor(Math.random()*(M-N+1))+N

            //N-M间随机数函数

            function getRandom(N,M)

            {

                return Math.floor(Math.random()*(M-N+1))+N

            }

            console.log(getRandom(4,8))

APIday1

1-DOM对象

2-获取DOM元素

语法:console.log()

3-修改对象内容

1. 获取元素

    const box = document.querySelector('.box')

    2. 修改文字内容  对象.innerText 属性

    console.log(box.innerText)  // 获取文字内容

    // box.innerText = '我是一个盒子'  // 修改文字内容

    box.innerText = '<strong>我是一个盒子</strong>'  // 不解析标签

    3. innerHTML 解析标签

    console.log(box.innerHTML)

    box.innerHTML = '我要更换'

    box.innerHTML = '<strong>我要更换</strong>'

4-修改元素常见的属性

 // 1. 获取图片元素

    const img = document.querySelector('img')

    // 2. 修改图片对象的属性   对象.属性 = 值

    img.src = './images/2.webp'

    img.title = 'pink老师的艺术照'

5-通过style更换样式

 // 1. 获取元素

    const box = document.querySelector('.box')

    //2. 修改样式属性 对象.style.样式属性 = '值'  别忘了跟单位

    box.style.width = '300px'

    // 多组单词的采取 小驼峰命名法

    box.style.backgroundColor = 'hotpink'

    box.style.border = '2px solid blue'

    box.style.borderTop = '2px solid red'

   6-通过类名更换样式

 // 1. 获取元素

    const div = document.querySelector('div')

    // 2.添加类名  class 是个关键字 我们用 className

    div.className = 'nav box'

7-通过classList更换样式

// 通过classList添加

    // 1. 获取元素

    const box = document.querySelector('.box')

    // 2. 修改样式

    // 2.1 追加类 add() 类名不加点,并且是字符串

    // box.classList.add('active')

    // 2.2 删除类  remove() 类名不加点,并且是字符串

    // box.classList.remove('box')

    // 2.3 切换类  toggle()  有还是没有啊, 有就删掉,没有就加上

    box.classList.toggle('active')

8-定时器-间歇函数

// setInterval(函数, 间隔时间)

    // setInterval(function () {

    //   console.log('一秒执行一次')

    // }, 1000)

day2

1-按下回车发布评论

const str='    pink'

        console.log(str.trim())

trim:去除字符串左右的空格

2-环境对象this以及回调函数

环境对象this:他代表着当前运行所处的环境

判断this指向的规则:谁调用,this就是谁

回调函数:把函数当做另外一个函数的参数传递

day3

1-全选按钮案例

<script>

    const checkAll =document.querySelector('#checkAll')

    const cks =document.querySelectorAll('.ck')

    checkAll.addEventListener('click',function(){

      for(let i=0;i<cks.length;i++){

        cks[i].checked=this.checked

      }

    })

    for(let i=0;i<cks.length;i++){

      cks[i].addEventListener('click',function(){

       checkAll.checked =document.querySelectorAll('.ck:checked').length===cks.length

      })

    }

.ck:checked:伪类选择器

document.querySelectorAll('.ck:checked').length===cks.length:该语句结果为true或false

2-事件流的两个阶段

事件捕获:从大到小

DOM.addEventListener(事件类型,事件处理函数,是否使用捕获机制)

1.addEventListener第三个参数传入true代表是捕获阶段触发(很少使用)

2.若传入false代表冒泡阶段触发,默认就是false

3.若是用L0监听,则只有冒泡阶段,没有捕获

事件冒泡:从小到大

当一个元素触发事件后,会依次向上调用所有父级元素的同名事件

3.阻止冒泡

实际上是阻止事情的流动传播,对捕获和冒泡都有效

 事件对象.stopPropagation()

son.addEventListener('click', function (e) {

      alert('我是儿子')

      // 组织流动传播  事件对象.stopPropagation()

      e.stopPropagation()

4.解绑事件

1. L0 事件移除解绑

btn.onclick = function () {

      alert('点击了')

      btn.onclick = null

2.    L2 事件移除解绑

 function fn() {

      alert('点击了')

    }

    btn.addEventListener('click', fn)

  btn.removeEventListener('click', fn)

 

5.事件委托

优点:减少注册次数,可以提高程序性能

事件对象.target.tagName

if (e.target.tagName === 'LI') {

        e.target.style.color = 'red'

      }

6.自定义属性

<div data-id="0"></div>

  <script>

    const div = document.querySelector('div')

    console.log(div.dataset.id) // 0

  </script>

7.阻止元素默认行为

(1)阻止冒泡

事件对象.stopPropagation

(2)阻止元素默认行为

 e.preventDefault()

form.addEventListener('submit', function (e) {

      // 阻止默认行为  提交

      e.preventDefault()

    })

8.页面添加事件

(1)load事件

监听整个页面给window加

 等待页面所有资源加载完毕,就回去执行回调函数

    window.addEventListener('load', function () {

      const btn = document.querySelector('button')

      btn.addEventListener('click', function () {

        alert(11)

      })

    })

    img.addEventListener('load', function () {

      // 等待图片加载完毕,再去执行里面的代码

    })

(2)DOMContentLoaded

给document加

无需等待样式表、图像完全加载

document.addEventListener('DOMContentLoaded', function () {

      const btn = document.querySelector('button')

      btn.addEventListener('click', function () {

        alert(11)

      })

    })

9.元素滚动事件

 window.addEventListener('scroll', function () {})

可读写: document.documentElement.scrollTop = 800

10.页面尺寸时间

// resize 浏览器窗口大小发生变化的时候触发的事件

    window.addEventListener('resize', function () {

      console.log(1)

    })

获取元素宽度:console.log(div.clientWidth)

高度同理

11.offsetWidth offsetHeight 和offsetTop  offsetLeft

day4

1-常见日期对象的方法

 // 获得日期对象

    const date = new Date()

    // 使用里面的方法

    console.log(date.getFullYear())

    console.log(date.getMonth() + 1)  // 月份要 + 1

    console.log(date.getDate())

    console.log(date.getDay())  // 星期几

2-获得时间戳的三种方式

 // 1. getTime()

    const date = new Date()

    console.log(date.getTime())

    // 2. +new Date()

  获得当前的时间戳:

console.log(+new Date()) //+把字符型转换为数字型

 获得指定时间的时间戳:

    console.log(+new Date('2022-4-1 18:30:00'))

    // 3. Date.now()

    console.log(Date.now());  

 // 我要根据日期 Day()  0 ~ 6  返回的是 星期一

    const arr = ['星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']

    // const date = new Date()

    console.log(arr[new Date().getDay()])

3-倒计时

4-DOM结点

克隆节点:深克隆(1) ul.appendChild(ul.children[0].cloneNode(true))

                             ( 2) const li1 = ul.children[0].cloneNode(true)

                                         ul.appendChild(li1)

                   浅克隆: ul.appendChild(ul.children[0].cloneNode())

                                  (不克隆里面的内容)

删除结点:

const ul = document.querySelector('ul')

    // 删除节点  父元素.removeChlid(子元素)

    ul.removeChild(ul.children[0])

m端事件:

// 1. 触摸

    div.addEventListener('touchstart', function () {

      console.log('开始摸我了')

    })

    // 2. 离开

    div.addEventListener('touchend', function () {

      console.log('离开了')

    })

    // 3. 移动

    div.addEventListener('touchmove', function () {

      console.log('一直摸,移动')

    })

swiper插件的用法

day5

1-BOM

2-延时函数

语法:setTimeout(回调函数,等待的毫秒数)

//清楚延时函数

    let timer = setTimeout(回调函数,等待的毫秒数)

    clearTimeout(timer)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值