当前位置: 首页 > news >正文

WEB APIs (5)

window对象

BOM(浏览器对象模型)

其为js操作浏览器提供了方法

window对象是一个全局变量,是BOM树根节点

BOM的属性和方法都是window的,如document、console.log()等

var定义在全局全局作用域中的变量、函数都会变成window对象属性和方法

定时器-延时函数

js内置让代码延迟执行的函数,setTimeout

语法:

setTimeout(回调函数,等待毫秒数)

仅执行一次

setTimeout返回的也是id

清除延时函数:

例子:广告自动消失

1.设置延时函数

2.隐藏元素

js执行机制

js一大特点只能是单线程;同一时间只能干一件事

js允许多线程(通过浏览器处理),因此出现同步与异步

同步任务

在主线程上执行,形成一个执行栈

异步任务

通过回调函数实现

三种类型:

普通事件,click、resize等

资源加载,load,error等

定时器,setInterval,setTimeout等

异步任务相关添加到任务队列

主线程执行完毕,查询任务队列,取出一个任务,推入主线程处理,重复动作

由于主线程不断地重复获得任务、执行任务,再获得任务、执行任务这种机制成为事件循环(event loop)

location对象

数据类型是对象,拆分并保存URL地址的各个组成部分

常用属性:

location.href属性获取完整的URL地址,对其赋值进行页面跳转

location.search属性获取地址中携带的参数,?后面部分

location.hash属性获取地址中携带的哈希值,#后面部分

常用于不刷新页面,显示不同页面

location.reload()用于刷新页面,location.reload(true)表示强制刷新

navigator对象

记录浏览器自身相关信息

属性方法

通过userAgent检测浏览器版本及平台

跳转的代码!

//检测userAgent(浏览器信息)(function){
const userAgent= navigator.userAgent
//验证是否为Android或iPhone
const android = userAgent.match(/(Android);?[\s\/]+([\d.]+)?/)
const iphone = userAgent.match(/(iPhone\sOS)\s([\d_]+)/)
//如果是Android或Phone,则跳转至移动站点
if (android || iphone){
location.href = 'http://m.itcast.cn'
}
})();

history对象

主要管理历史纪录,该对象与浏览器地址栏的操作相对应,前进、后退、历史记录等。

history.back()<=>退后

history.forward()<=>前进

history.go(n)<=>前进n个页面

本地存储

数据储存在用户浏览器中,刷新不会丢失(永久性)

特性:

可以多窗口共享(同一浏览器)

以键值对形式存储使用

本地存储得到的只能是字符串

语法:

存储数据

localStorage.setItem('key',value)

添加会在其中显示

获取数据

localStorage.getItem('key')

删除数据

localStorage.removeItem('key')

改数据

只需要再写一遍localStorage.setItem('key',value)  改变value值即可

本地存储处理复杂数据类型

本地只能储存字符型,无法储存复杂数据类型

需要将复杂数据类型转化成JSON字符串,在储存到本地

语法:

JSON.stringfy()

JSON.parse()

将JSON字符串转换为对象

数组的map以及join方法

map(也称映射)遍历数组,处理数据,返回新的数组

数组join方法,将数组转化为字符串

参数是什么就用什么隔开

特殊的:

本地储存的案例:

涉及表单提交中 bottom与submit的关系

submit:默认form提交

bottom:响应用户自定义事件(可以监听)

<!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, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no"><title>~</title><link rel="shortcut icon" href="https://www.bilibili.com/favicon.ico"><link rel="stylesheet" href="css/初始化表.css"><meta name="keywords" content="..." /><style>/*写代码时始终要考虑权重问题!*/@font-face {font-family: 'icomoon';src: url('fonts/icomoon.eot?au9n7q');src: url('fonts/icomoon.eot?au9n7q#iefix') format('embedded-opentype'),url('fonts/icomoon.ttf?au9n7q') format('truetype'),url('fonts/icomoon.woff?au9n7q') format('woff'),url('fonts/icomoon.svg?au9n7q#icomoon') format('svg');font-weight: normal;font-style: normal;font-display: block;}.box {width: 1000px;height: 100%;margin: 100px auto;text-align: center;}h1 {margin: 40px;}h2 {margin-top: 40px;}input {width: 70px;}button {margin-left: 10px;background-color: #451af1;color: #fff;border-radius: 4px;}table {margin: 0 auto;border: #c8c7ca;width: 600px;}td {padding: 5px;}thead {background-color: #88cbf6;font-size: 14px;}a {color: white;display: inline-block;width: 45px;height: 15px;line-height: 15px;background-color: #eb6e07;cursor: pointer;}.title {width: 600px;height: 30px;line-height: 30px;padding-right: 15px;margin: 10px auto;text-align: right;}.title span {display: inline-block;color: #f26934;}</style>
</head><body><div class="box"><h1>新增学员</h1><form class="info" autocomplete="off">姓名:<input type="text" class="uname" name="uname">年龄:<input type="text" class="age" name="age">性别:<input type="text" class="sex" name="sex">薪资:<input type="text" class="salary" name="salary">就业城市:<select class="city" name="city"><option value="北京">北京</option><option value="上海">上海</option><option value="广州">广州</option><option value="深圳">深圳</option><option value="成都">成都</option></select><button class="add">录入</button></form><h2>就业榜</h2><div class="title">共有数据<span>0</span>条</div><table border="1" align="center" cellpadding="0" cellspacing="0"><thead><tr><td>学号</td><td>姓名</td><td>年龄</td><td>性别</td><td>薪资</td><td>就业城市</td><td>操作</td></tr></thead><tbody></tbody></table></div><script>const info = document.querySelector('.info')const uname = document.querySelector('.uname')const age = document.querySelector('.age')const sex = document.querySelector('.sex')const salary = document.querySelector('.salary')const city = document.querySelector('.city')const button = document.querySelector('.add')const number = document.querySelector('.title span')const tbody = document.querySelector('tbody')const names = document.querySelectorAll('[name]')const arr = []function render() {const arr1 = arr.map((item,index) => {return `<tr><td>${item.Id}</td><td>${item.uname}</td><td>${item.age}</td><td>${item.sex}</td><td>${item.salary}</td><td>${item.city}</td><td><a href="javascript:" data-id=${index}>delete</a></td></tr>`})tbody.innerHTML = arr1.join('')number.innerHTML = arr1.length}info.addEventListener('submit', function (e) {e.preventDefault()for (let i = 0; i < names.length; i++) {if (names[i].value === '') {return alert('数据不能为空!')}}arr.push({Id: arr.length,uname: uname.value,age: age.value,sex: sex.value,salary: salary.value,city: city.value,time: new Date().toDateString()})render()this.reset()localStorage.setItem('data', JSON.stringify(arr))})tbody.addEventListener('click',function(e){if (e.target.tagName==='A' && confirm('是否删除?')){arr.splice(e.target.dataset.id,1)render()localStorage.setItem('data', JSON.stringify(arr))}})</script></body></html>

http://www.lryc.cn/news/310856.html

相关文章:

  • 物联网常见协议篇
  • Kubernetes-1
  • SpringMVC框架②
  • springboot230基于Spring Boot在线远程考试系统的设计与实现
  • 盘点:国家智能算力中心
  • 【C++】7-2 寻找完美数 分数 10
  • 基于Mahout实现K-Means聚类
  • 科技的成就(五十七)
  • 动态IP代理技术在网络爬虫中的实际使用
  • 计算机网络:深入探索HTTP
  • Netty(1)nio
  • 1.3 vue ui框架-element-ui框架
  • 关于MediaEval数据集的Dataset构建(Text部分-使用PLM BERT)
  • QML学习之Text
  • 轮转数组(元素位置对调、数据的左旋、右旋)
  • 喜迎乔迁,开启新章 ▏易我科技新办公区乔迁庆典隆重举行
  • 多个地区地图可视化
  • 学习使用paddle来构造hrnet网络模型
  • Redis 多线程操作同一个Key如何保证一致性?
  • 单链表合并
  • 【如何像网吧一样弄个游戏菜单在家里】
  • CSS~~
  • Docker技术概论(1):Docker与虚拟化技术比较
  • alibabacloud学习笔记07(小滴课堂)
  • Ansible-Playbook
  • UE5常见问题处理笔记
  • docker中hyperf项目配置虚拟域名
  • PID闭环控制算法的学习与简单使用
  • 【无刷电机学习】光耦HCNR200基本原理及应用(资料摘抄)
  • 【LeetCode】1768_交替合并字符串_C