BOM

134 阅读7分钟

定时器 一: 1 setI(这是大写的i)nterval 语法:setInterval(函数,数字) 函数:每次定时器重新执行的时候,要做的事情(要执行的代码) 数字:当前定时器每个多长时间重新执行一次,单位是毫秒 2 setTimeout 语法:setTimeout(函数,数字) 函数:倒计时器执行的时候,要做的事情(要执行的代码) 数字:当前倒计时延迟多长时间执行(只会执行一次)单位是毫秒 当数字再不写时或者为0时,执行速度会按照最快的速度执行 最快速度一般为4~20毫秒,最快速度与电脑性能有关

二:定时器的返回值 意义:表明当前定时器是这个页面的第几个定时器 注意:如果页面的打开方式是利用liveserver启动,那么定时器的id,会不太一样 作用:能够利用返回值关闭这个定时器 关闭语法1:clearInterval(要关闭的定时器的返回值) 关闭语法1:clearTimeoutl(要关闭的定时器的返回值) 注意:关闭语法可以混用,所以只要关闭定时器,随便写上面哪个都可以 但是推荐对应的书写,目的是为了让别人一眼看出关闭的是定时器还是倒计时器

js异步任务 js是单线程的,同一时间只能做同一件事 如果只有单线程那么可能会遇到一些问题 上述的方案 如果遇到一个中间的代码 耗时很久, 那么后续的所有代码, 都需要等待上边的代码执行完毕后在执行          *      这种情况给用户的感觉就是非常卡顿 所以为了解决上述的问题,js将代码分为两个任务 同步任务: 目前所接触的内容中,除了两个定时器之外的都是同步任务 异步任务: 目前所接触的内容中,只有两个定时器算是异步任务,将来还会有新的异步任务

js中代码执行的顺序 代码从上往下执行 先将代码中所有的同步任务,全部都执行一遍 同步任务执行完毕后,再执行异步任务 如果在代码的中间遇见了异步任务,那么先将异步任务暂存到一个任务队列中,等待所有同步任务执行完毕后执行

BOM 1:浏览器的对象模型 BOM 其实就是 浏览器提供给我们操作浏览器的一个能力          *          获取浏览器的宽高          *          获取浏览器页面卷去的高度          *          通过JS控制页面的跳转          *          获取浏览器地址栏的信息          *          操作浏览器页面的滚动条          *          获取到浏览器的版本          *          打开浏览器的弹窗 核心:页面中有一个对象叫做window window 是 JS 内置的一个对象, 上述所有的方法都可以利用 window 内部提供的一些东西解决  扩展:          *      我们所有的全局变量(函数以外的地方声明变量) 和 全局函数(函数以外的地方声明的函数)          *          *      全都存放在 window 对象中          *          *      window 对象中有一个属性叫做 name,          *      所以我们在开发的时候, 尽量避免全局变量或者全局函数的名字叫做name         */ 一: 获取浏览器的窗口尺寸(宽高) 注意:当前方法是包含浏览器的滚动条的 console.log('浏览器当前宽度: ', window.innerWidth)         // console.log('浏览器当前高度: ', window.innerHeight) 二:打开浏览器提供的弹出框 1:prompt(用户输入框)会有一个返回值,就是用会输入的内容,永远是字符串格式 window.prompt('弹出框2: window.prompt') console.log(‘我叫张丹阳’) 2:alert (弹出框)弹出框会中断(暂停)程序的运行,直到关闭弹出框。 // console.log('JS 开始')         // alert("提示信息1: alert")         // console.log('JS 运行到一半')         // window.alert('提示信息2: window.alert')         // console.log('JS运行完毕') 3:confirm(用户询问框)会有一个返回值,如果点确定返回true,否则返回false  var res = window.confirm('您确定删除吗?')         console.log('用户确定与否: ', res) 三:浏览器的地址信息 location(专门用来存储浏览器地址栏内的信息)  在 window 对象中有一个对象 location, 他的内部存储的就是 浏览器地址的信息 location.href: 专门存储浏览器地址栏内 url 地址的信息             * 语法: var url = window.location.href             * 我们也可以给这个属性赋值, 这样就会跳转到我们复制的地址了 window.location.href = 'www.baidu.com' location.reload location.reload 会重新加载页面, 相当于刷新             * 注意: 不要写在全局内, 否则浏览器会一直刷新                 window.location.reload() 四:浏览器的历史记录 history(专门用来存储历史记录信息) history.back history.back 用来回退历史纪录的, 就是回到前一个页面, 相当于浏览器左上角的 ← 按钮 注意: 我们需要有上一条记录, 不然就一直在这个页面 不会回退 语法: window.history.back()

history.forward // * history.forward 是去到下一个历史记录里面, 也就是去到下一个页面, 就相当于 浏览器左上角的 → 按钮 // * 注意: 前提是我们之前有过回退操作, 不然的话我们现在就是在最后一个页面, 没有下一个 语法: window.history.forward() 五:浏览器的版本信息 windows中的 navigator 可以获取浏览器的版本信息 六:浏览器事件 1:浏览器加载延迟事件 window.onload = function () {             /**              *  在以前开发的时候, 我们会将 所有的 JS 代码, 全都放在这个函数中运行              *              *  因为在这个函数中运行的时候, 可以保证页面所有的资源已经加载完毕了, 比如  标签, 图片             */             console.log('当前函数不需要调用, 会在当前页面的所有资源加载完毕的时候执行')         } 2:浏览器滚动事件 window.onscroll = function () {             console.log('当前函数也不需要调用, 会在浏览器发生滚动事件的时候执行')         } 七:浏览器的滚动距离 注意:滚动事件发生的时候,浏览器的位置一致没变,而是浏览器内的页面发生了滚动 两种写法: 这两种是向上滚动   1:document.body.scrollTop    2:document.documentElement.scrollTop 向左滚动 1:document.body.scrollLeft 2:document.documentElement.scrollLef 区别: 如何区分          *      谷歌 火狐          *          如果 页面 声明 那么需要使用 documentElement          *          否则使用 body          *          *      IE (了解)          *          如果没有 声明 那么使用两个都没问题          *          如果 声明了  那么只能使用 documentElement          *          *      Safari          *          两个都不用, 使用一个单独的方法 window.pageYOffset         */ js写法: window.onscroll = function () { console.log(document.body.scrollLeft) console.log(document.documentElement.scrollLeft) 八:本地存储 意思:把一些常用信息存储在用户的电脑本地(存储在浏览器中) localStorage 特点: 1:浏览器的本地存储,持久化存储,存储之后不手动删除,那么永久存在 2:在存储的时候,只能存储基本数据类型中的字符串 3:如果需要存储其他数据类型,需要借助JSON提供的方法 4:可以实现跨页面通讯 JSON提供的方法让其他数据类型转为JSON格式的字符串,然后存储到本地存储中: JSON.stringify

还原格式: JSON.parse

本地存储里面的增 删 查 1: 增: setitem(关键词) 实现一个本地存储(localStorage) 语法:window.localStorage.setItem('box','203856')(括号里面第一个单引号是存储的表示是什么。第二个单引号要存储什么内容)(第一个单引号是key,第二个单引号是value)

查: 可以获取之前存储到本地的一些数据 getitem(关键字) 语法: console.log('box',window.localstorage.getitem('box'))或者 var qq = window.localstorage.getitem('qq') console.log('qq',qq) 注意:此时这个box还是这个qq都是起的名字 删除: removeitem(关键词) 语法:window.localstorage.removeitem(‘key’) 注意:以后在公司开发的时候,建议只用删除,别用清空。目的是为了自己的操作不影响同事的代码 清空: clear(关键词) 语法:window.localstorage.clear()