BOM对象和json

1.BOM对象

1)概念

浏览器相关的对象。获取浏览器相关的信息,可以设置和修改浏览器属性。

 

2)Window

浏览器相关的宽高信息

setInterval

setTimeout

clearInterval

clearTimeout

 

Fetch:未来学习ajax的时候可以用到的方法

Open:打开一个新的页面

outerHeight: 浏览器的高度

outerWidth: 浏览器的宽度

 

Alert:仅仅只是一个弹框,只有一个确定按钮

Comfirm:有确定和取消按钮的弹框,返回值分别为truefalse

Prompt:这是一个可以让用户输入内容的弹框。(不建议使用)

Scrollto:设置滚动条,滚动到什么位置,语法:scrollTo(水平位置,垂直位置)

 

3)Location

 

4)Navigator

 

5)History

 

6)Localstorage

 

7)sessionStorage

 

2.延迟函数和间隔函数

1)延迟函数:setTimeout

延迟一段时间执行某个函数,setTimeout有返回值,这个返回值即是setTimeoutid值。

注意:延迟函数是异步执行的。

语法1setTimeout(函数对象,延迟多少毫秒执行)

语法2setTimeout(函数对象,延迟时间,后面的参数皆为函数对象的参数)

 

清除延迟函数:clearTimeout

语法:clearTimeout(延迟函数的ID)

2)间隔函数:setInterval

每隔一段时间执行一次,第一次执行也会延迟。间隔函数也是异步执行函数,会将间隔执行的函数对象,放置到内存的事件队列里,到了时间点,就会从事件队列拿到主线程进行执行,主线程会根据在空闲时间点执行事件。

 

清除间隔函数:clearInterval

语法:clearInterval(间隔函数的ID)

 

异步问题案例:

 

 1 var jiuba = function(doSomething){
 2 
 3 console.log("是时候去酒吧了")
 4 
 5 console.log("去做什么:"+doSomething)
 6 
 7 }
 8 
 9  
10 
11 var interId1 = setTimeout(function(){
12 
13 jiuba("把妹")
14 
15 },0)
16 
17 console.log(123456)

 

 

 

3.location和navigator

1)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或者是https

 

可以修改路径,跳转至相对应的页面

location.href = "http://www.taobao.com"

Assign:跳转页面:

location.assign("http://www.qq.com")

 Reload:重新加载页面

location.reload()

 Replace:替换掉当前页面

location.replace('http://www.qq.com')

 

注意:assignreplace是有区别的。Assign相当于跳转到下一个页面,所以会有返回键。Replace是替换掉当前页面,所以不能返回之前的页面。

2)Navigator

Navigator可以获取浏览器和系统相关的信息。

userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"

 

一般通过userAgent来获取浏览器的信息,并且根据浏览器信息,发送相对于的页面,例如是发送PC页面还是移动端页面。

 

通过navigator判断浏览器

 

 1 //通过navigator来判断访问的浏览器
 2 
 3  
 4 
 5 var userAgent = navigator.userAgent
 6 
 7  
 8 
 9 console.log()
10 
11  
12 
13 //userAgent.indexOf("iPhone")=-1  指该设备PC端
14 
15  
16 
17 if(userAgent.indexOf("iPhone")!=-1 || userAgent.indexOf("Android")!=-1 || userAgent.indexOf("iPad")!=-1){
18 
19 console.log("你是移动端")
20 
21 //location.assign("http://m.taobao.com")
22 
23 }else{
24 
25 console.log("你是pc端")
26 
27 //location.assign("http://www.taobao.com")
28 
29  
30 
31 }

 

 

 

4.history

1)概念

只能对页面前进后退,不能真正获取用户的浏览记录。

2)history.back()

后退1个页面

3)history.forward()

前进1个页面

4)history.go()

语法:history.go(前进或后退的数)

正数是前进,负数是后退。

5.localstorage和sessionstorage

1)LocalStorage

永久性保存数据,只要你不删除数据,数据就会永久保留。

[1]增,

没有就是增,有就是修改

//localStorage.xx = 赋值内容

//localStorage.setItem("username","隔壁老王")

localStorage["like"] = "ctrRapl篮球"

[2]删除

localStorage.removeItem("like")

//delete localStorage.like

[3]获取

console.log(localStorage.username)

console.log(localStorage['username'])

console.log(localStorage.getItem('username'))

[4]删除所有

localStorage.clear()

 

2)SessionStorage

当次会话有效,关闭浏览器之后就失效了,其它的与localStorage的方法一样

6.json

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

 

Javascript  obj<===>文本

 

案例:

 1 var obj = {
 2 
 3 name:"蔡徐坤",
 4 
 5 like:["唱","跳","rap","打代码"]
 6 
 7  
 8 
 9 }
10 
11  
12 
13  
14 
15 //将js对象转换成json格式的字符串
16 
17 var strJson = JSON.stringify(obj)
18 
19 console.log(strJson)
20 
21  
22 
23 //json字符串转换成js对象
24 
25 var jsonObj = JSON.parse(strJson)
26 
27 console.log(jsonObj)

 

posted @ 2019-06-12 10:38  他也就火三年  阅读(260)  评论(0编辑  收藏  举报