Javascript - BOM 对象
浏览器相关的对象。获取浏览器相关的信息,可以设置和修改浏览器属性。
0. web-app 版 TodoList 小程序
用以下内容可以自己手写一个 TodoList 小程序,再添加几行代码就可以用手机浏览器保存在桌面变成一个 web-app 使用!我自己写的托管在 GitHub,感兴趣的可以看看源码给个 star!~
GitHub 项目地址:项目地址
小程序入口(推荐用手机打开):程序入口
1. window
1.1 延迟函数
延迟一段时间执行某个函数,setTimeout 有返回值,这个返回值即是 setTimeout 的 id 值。
注意:延迟函数是异步执行的。具体的执行方式是,在设定的时间过后,将函数重新放到 script 的末尾等待执行。
语法:
setTimeout(函数对象,延迟多少毫秒执行)
setTimeout(函数对象,延迟时间,后面的参数皆为函数对象的参数)
清除延迟函数:
clearTimeout(延迟函数的ID)
1.2 间隔函数
每隔一段时间执行一次,第一次执行也会延迟。间隔函数也是异步执行函数,会将间隔执行的函数对象,放置到内存的事件队列里,到了时间点,就会从事件队列拿到主线程进行执行,主线程会根据在空闲时间点执行事件。
语法同 setTimeout 类似,有 setInterval
和 clearInterval
这两个方法用于创建和删除。
1.3 其它方法和属性
fetch
:未来学习ajax的时候可以用到的方法open
:打开一个新的页面outerHeight
:浏览器的高度outerWidth
:浏览器的宽度alert
:仅仅只是一个弹框,只有一个确定按钮comfirm
:有确定和取消按钮的弹框,返回值分别为true和falseprompt
:这是一个可以让用户输入内容的弹框。(不建议使用)scrollto
:设置滚动条,滚动到什么位置,语法:scrollTo(水平位置,垂直位置)
2 location
hash: "#hotspotmining"
--->页面锚点的位置host: "baike.baidu.com"
--->主机域名hostname: "baike.baidu.com"
--->主机名称href: "https://baike.baidu.com/item/%E8%BF%90%E5%8A%A8/2134938#hotspotmining"
--->这个页面链接地址origin: "https://baike.baidu.com"
--->来源的域名pathname: "/item/%E8%BF%90%E5%8A%A8/2134938"
--->服务器页面的项目路径port: ""
--->端口号,没有写就是根据协议,默认的端口号protocol: "https:"
--->协议,一般是http或者是httpslocation.href = "http://www.taobao.com"
--->可以修改路径,跳转至相对应的页面location.assign("http://www.qq.com")
--->跳转页面:location.reload()
--->重新加载页面location.replace('http://www.qq.com')
--->替换掉当前页面
注意:assign和replace是有区别的。assign相当于跳转到下一个页面,所以会有返回键。replace是替换掉当前页面,所以不能返回之前的页面。
3 navigator
Navigator可以获取浏览器和系统相关的信息。
一般通过 userAgent 来获取浏览器的信息,并且根据浏览器信息,发送相对于的页面,例如是发送 PC 页面还是移动端页面。
//通过navigator来判断访问的浏览器
var userAgent = navigator.userAgent
if(userAgent.indexOf("iPhone")!=-1 || userAgent.indexOf("Android")!=-1 || userAgent.indexOf("iPad")!=-1){
console.log("你是移动端")
//location.assign("http://m.taobao.com")
}else{
console.log("你是pc端")
//location.assign("http://www.taobao.com")
}
4 history
只能对页面前进后退,不能真正获取用户的浏览记录。
history.back()
:后退1个页面history.forward()
:前进1个页面history.go()
:history.go(前进或后退的数)
正数是前进,负数是后退。
5 localStorage
永久性保存数据,只要你不删除数据,数据就会永久保留。
5.1 使用localstorage进行增删改查
增、改
localStorage.xx = 赋值内容
localStorage.setItem("username","隔壁老王")
localStorage["like"] = "c唱t跳rRapl篮球
删除
localStorage.removeItem("like")
delete localStorage.like
获取
console.log(localStorage.username)
console.log(localStorage['username'])
console.log(localStorage.getItem('username'))
删除所有
localStorage.clear()
6 sessionStorage
和 localStorage 类似,但仅在当次绘画有效,当关闭页面后,则丢失数据。
7 JSON
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。
可以实现对象和文本的相互转换
var obj = {
name:"蔡徐坤",
like:["唱","跳","rap","打代码"]
}
//将js对象转换成json格式的字符串
var strJson = JSON.stringify(obj)
console.log(strJson)
//json字符串转换成js对象
var jsonObj = JSON.parse(strJson)
console.log(jsonObj)
Javascript - BOM 对象的更多相关文章
- JavaScript BOM对象介绍
bom:即broswer object model(浏览器对象模型),由五个对象组成: Window:对象表示浏览器中打开的窗口 最顶层对象. Navigator :浏览器对 ...
- 前端基础:JavaScript BOM对象
JavaScript BOM对象 JavaScript Window - 浏览器对象模型 浏览器对象模型(BOM)使JavaScript有能力与浏览器"对话". 浏览器对象模型(B ...
- javascript BOM对象 第15节
<html> <head> <title>浏览器对象</title> <script type="text/javascript&quo ...
- Javascript BOM对象
BOM是browser object model的缩写,简称浏览器对象模型. window对象(BOM的核心对象) 表示浏览器的一个实例,在浏览器中,window对象有着双重角色,它既是通过Javas ...
- JavaScript之BOM对象
JavaScript bom对象 BOM对象 window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个window对象.功能上讲: 控制浏览器窗口的.使用上讲: wi ...
- JavaScript基础16——js的BOM对象
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 第三章 JavaScript操作BOM对象
第三章 JavaScript操作BOM对象 一.window对象 浏览器对象模型(BOM)是javascript的组成之一,它提供了独立与浏览器窗口进行交换的对象,使用浏览器对象模型可以实现与HT ...
- JavaScript快速入门-BOM对象
一.什么是BOM 概念 BOM(Browser Object Model)即浏览器对象模型.BOM提供了独立于内容,而与浏览器窗口进行交互的对象: 核心 由于BOM主要用于管理窗口 ...
- JavaScript BOM DOM 对象
title: JavaScript BOM DOM 对象 tags: JavaScript --- browser object model document onject model BOM对象 w ...
随机推荐
- useradd/usermod/userdel/passwd/groupadd/groupmod/groupdel/gpasswd
用户 用户系统也是通过一个文件来管理的,默认的root用户id是0, shadow文件说明 加密算法类别 $后面的数字6指定了加密算法使用的是第六种,sha512加密 增加用户,修改成同样的密码,查看 ...
- Django基础之render()
结合一个给定的模板和一个给定的上下文字典, 并返回一个渲染后的HttpResponse对象. 参数: request: 用于生成响应的请求对象 template_name: 要使用的模板的完整名称, ...
- Map集合循环遍历的几种方式
package cn.jdbc.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import ...
- mysql 5.7.16 安装配置
环境变量在path中添加一个 E:\soft\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin 查看mysql版本mysql -V 生成无密码账户进入到mysql ...
- python能用来做什么?这3大主要用途你一定要知道!(实用)
导读:如果你想学Python,或者你刚开始学习Python,那么你可能会问:“我能用Python做什么?” 这个问题不好回答,因为Python有很多用途. 但是随着时间,我发现有Python主要有以下 ...
- Leetcode题目98.验证二叉搜索树(递归-中等)
题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数.节点的右子树只包含大于当前节点的数.所有左子树和右子树自身必须也是 ...
- Leetcode题目78.子集(回溯-中等)
题目描述: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集). 说明:解集不能包含重复的子集. 示例: 输入: nums = [1,2,3] 输出: [ [3], [1] ...
- LeetCode347——优先队列解决查询前k高频率数字问题
给定一个非空的整数数组,返回其中出现频率前 k 高的元素. 例如, 给定数组 [1,1,1,2,2,3] , 和 k = 2,返回 [1,2]. 注意: 你可以假设给定的 k 总是合理的,1 ≤ k ...
- js判断是否联网
// navigator.onLine if (navigator.onLine){ //正常工作 console.log("在线状态............................ ...
- koa 项目实战(六)注册接口加密
1.创建工具类 根目录/config/tools.js const bcrypt = require('bcryptjs'); const tools = { enbcrypt(password) { ...