DOM06~
Window 对象
BOM (浏览器对象模型)
定时器-延时函数
js 执行机制
location 对象
navigator 对象
history 对象
BOM
BOM (Browser Object Model) 是浏览器对象模型
navigator + location+ document + history + screen --> window
window 是浏览器内置的全局对象,我们所学习的所有 Web APIs 的知识内容都是基于 window 对象实现的
window 对象包含了 navigator、location、document、history、screen 5个属性,即所谓的 BOM
document 是实现 DOM 的基础,它其实是依附于 window 的属性
依附于 window 对象的所有属性和方法,使用时都可以省略 window
定时器 - 延时函数
js 内置的一个用来让代码延迟指定的函数, setTimeout
语法:setTimeout(回调函数,等待的毫秒数)
setTimeout 仅仅只执行依次,所以可以理解为就是把一段代码延迟执行,平时省略 window
清除延时函数
let timer = setTimeout(回调函数,等待的毫秒数)
clearTimeout(timer)
demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button>解除定时器</button>
<script>
// 添加 延时函数 定时器
let timer = setTimeout(function() {
console.log(111);
}, 3000)
// 清除 延时函数 定时器
let btn = document.querySelector('button')
btn.addEventListener('click', function() {
clearTimeout(timer)
})
</script>
</body>
</html>
递归函数
6.1 什么是递归函数?
自己调用自己
6.2 利用递归 与 延时函数 实现 间隔函数 demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div></div>
<script>
// 利用递归函数 实现 间隔函数
let div = document.querySelector('div')
function fn() {
div.innerHTML = new Date().toLocaleString()
setTimeout(fn, 1000)
}
fn()
</script>
</body>
</html>
js 执行机制
(js 执行机制)[js执行机制 - 简书 (jianshu.com)]
location 对象
location 的数据类型是对象,用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面
常用的属性和方法 (Location)[Location - Web API 接口参考 | MDN (mozilla.org)]
navigator 对象
navigator 的数据类型是对象,它包含有关访问者浏览器的信息
常用属性和方法 (Navigator)[Navigator - Web API 接口参考 | MDN (mozilla.org)]
警告!!! 来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:
navigator 数据可被浏览器使用者更改
一些浏览器对测试站点会识别错误
浏览器无法报告晚于浏览器发布的新操作系统
浏览器检测
由于 navigator 可误导浏览器检测,使用对象检测可用来嗅探不同的浏览器。
由于不同的浏览器支持不同的对象,您可以使用对象来检测浏览器。例如,由于只有 Opera 支持属性 "window.opera",您可以据此识别出 Opera。
例子:if (window.opera) {...some action...}
history 对象
history 的数据类型是对象,该对象与浏览器地址栏的操作对应,如前进、后退、历史记录等
常用属性和方法 (History)[History API - Web API 接口参考 | MDN (mozilla.org)]
DOM06~的更多相关文章
随机推荐
- python 之用户自定义函数
什么是函数? 函数无非就是将代码块进行封装,想用的时候拿来用,减少代码量,提高效率. 函数的定义 定义一个函数需要: 1.def关键字,def 后面空一格输入函数名称,函数命名时尽量简短,且具有意义, ...
- python 之选择结构(if --elif --else)
python中有三种结构:顺序结构.选择结构.循环结构,此处介绍选择结构. if -- else 结构: if 判断条件: 执行语句 else: 执行语句 当if后面的判断条件为真(True)时,执行 ...
- python安装过程
1.在官网下载,点击进入安装包. 2.把Add勾上,会自动配置环境变量. 3,这些是要下载的东西,要全部勾上. 4.这里特别注意路径,把路径改成自己想放的盘里面. 5.配置环境变量,在此电脑搜索 编辑 ...
- Hadoop详解(08) - Hadoop企业优化方案.docx
Hadoop详解(08) - Hadoop企业优化方案.docx MapReduce优化 MapReduce 跑的慢的原因 计算机性能:CPU.内存.磁盘健康.网络 I/O 操作优化 (1)数据倾斜 ...
- 【Java】线程池梳理
[Java]线程池梳理 前言 线程池:本质上是一种对象池,用于管理线程资源.在任务执行前,需要从线程池中拿出线程来执行.在任务执行完成之后,需要把线程放回线程池.通过线程的这种反复利用机制,可以有效地 ...
- MySQL join语句怎么优化?
在MySQL的实现中,Nested-Loop Join有3种实现的算法: 1. Simple Nested-Loop Join:简单嵌套循环连接 2. Block Nested-Loop Join:缓 ...
- 从0开始学Java 第一期 开发前的准备
Java 学习(一) - 开发前的准备 前言 由于一些项目上的需要,我得学习一下 Java 这门语言(主要是想写Android),本人并非0基础,至少在上个学期学习了一门必修的程序设计(C语言),所以 ...
- LeetCode-343. 整数拆分 - 题解分析
题目来源 343. 整数拆分 题目详情 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化. 返回 你可以获得的最大乘积 . 示例 1: 输入: ...
- 洛谷P2036 PERKET题解
先来审题,主要有以下几个条件: 酸度求乘积,苦度求和,两者相减的值最小(当然是绝对值). 下面附上AC代码: #include<bits/stdc++.h> //万能头文件 using n ...
- vue学习笔记(七)---- vue中的路由
一.什么是路由 对于普通的网站来说,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源 对应单页面的应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,h ...