| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> js之BOM学习,页面加载事件,定时器,js同步异步,location参数,this指向问题 -> 正文阅读 |
|
[JavaScript知识库]js之BOM学习,页面加载事件,定时器,js同步异步,location参数,this指向问题 |
什么是BOM?BOM(Browser Object Model)浏览器对象模型,提供了独立于内容而与窗口进行交互的对象,核心对象是window,学习与浏览器进行交互的一些对象比如怎么后退一个页面,前进一个页面,刷新等。BOM由一系列对象组成,每个对象有其对应的属性和方法,BOM缺乏标准,浏览器厂商再各自浏览器上定义的JS的语法标准化组织是ECMA,DOM是W3C。
页面加载事件window.onload = function(){} 或者window.addEventListener('load',function(){}) 是页面加载事件,当文档内容全部加载完就会触发事件,包括(图像,文本,脚本,样式)等调用处理函数。这样就能把js脚本放到html页面中任何位置了,之前只能在标签的下面,因为是按照从上往下依次执行的。 还有一个document.addEventListener('DOMContentLoaded',function(){})这个是仅当DOM加载完毕(不包括样式,图像等)如果一个页面图片很多,等全部的图像加载完需要一定时间,影响用户体验,我们可以使用这个。加载速度比load快。
调整窗口大小事件
定时器之setTimeoutsetTimeout(调用函数,延迟时间(毫秒)可以省略默认为0),属于window对象,window可以省略。 setTimeout(function(){},1000)或者把函数写到外面,setTimeout(fn,1000) function fn(){},fn可以加引号。 定时器有很多,所以有时候会给定时器加标识符。 回调函数以及五秒后关闭广告 setTimeout也叫回调函数,普通函数是按照代码是按照代码顺序执行的,而这个函数,需要等待时间,时间到了才会去调用。 element.onclick = function(){}或者element.addEventListener('click',function(){})也是回调函数。 关闭广告是设置定时器,5秒过后设置隐藏
清除定时器clearTimeout?????????window.clearTimeout(定时器名字)window可以省略 定时器setInterval()setIterval(回调函数,间隔毫秒数) 与setTimeout()区别是setInterval()循环执行,重复调用,每隔一段时间就调用一次回调函数。
每隔3秒在控制台打印继续输出中 倒计时效果第一次执行也会有间隔毫秒是,解决办法,先调用一次这个函数
清除定时器clearInterval
发送验证码
this指向问题this在定义的时候确定不了,只有函数执行的时候,指向调用它的对象。 1.全局作用域或者普通函数中this指向全局变量window,定时器中的this指向window。
2.方法中谁调用指向谁
3.构造函数中指向构造函数的实例
js中同步和异步js语言一大特点,典型性的单线程,同一个时间只能做一件事,所有任务排队,下一个任务有可能等好长时间。 同步,前一个任务执行完再去执行下一个任务,比如烧完水再去炒菜 异步,可以同时处理事情,比如烧水的同时,也炒菜。
同步任务和异步任务执行过程同步任务:代码顺序放入主线程中,回调函数属于异步任务,放到任务队列(消息队列),js的异步是回调函数实现的。 异步任务:普通事件click resize等、资源加载load error、定时器。 先执行栈中的同步任务,遇到回调函数先放到任务队列,不执行,接着执行下一个,完成同步任务后,去任务队列中找,拿到任务栈的最下面执行。 所以这就是为什么代码打印顺序是123,因为定时器放到了任务队列中,不执行,等到主线程中代码全部执行完毕后,再去任务队列中找到这个函数啊拿到栈中执行。 定时器是时间到了才会放到任务队列中,点击事件也是点击了才会放到任务队列。 事件循环:由于主线程不断地获取任务,执行任务,再获取任务,执行任务,这种机制叫做事件循环。 location对象window提供了一个location属性用于获取或者设置窗体的url,并且可以用于解析url,因为这个属性返回的是一个对象,所以也叫location对象。 url统一资源定位符,互联网上的每一个资源都有唯一的url,它包含的信息指出文件的位置以及浏览器该怎么处理。
??location.href 获得或者设置整个url 重点 ? ? location.host 返回主机 ? ? location.port 返回端口号,未写返回空字符串 ? ? location.pathname 返回路径 ? ? location.search 返回参数 ?重点 ? ? location.hash 返回片段? ? console.log(window.location.href);可以获取当前的url,也可以重新设置。 ??location.href = 'http://www.baidu.com'; //点了之后跳转一个新的页面 在另一个新的页面获取上一个的url参数 ?
?
location常见方法location.assign()跟href属性一样,可以跳转页面(重定向)记录历史,可以后退 location.replace()替换当前页面,因为不记录历史,所以不能后退页面 location.reload()重新加载,相当于刷新按钮,如果参数为true强制刷新 navigator对象移动端显示移动端页面 pc端打开的使用pc页面 history对象与浏览器的历史记录进行交互 history对象方法 back()实现后退 forward()实现前进 go(参数)前进后退功能 参数如果是1前进一个 -1后退一个。 前提要先有缓存
|
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 1:06:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |