Window对象

BOM

浏览器对象模型

window对象是一个全局对象,也就是说JS中的顶级对象

像document,alter(),console.log()这些都是window的属性,基本BOM的属性和方法都是window的

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

window对象下的属性和方法调用的时候其实都是省略了window.

定时器-延迟函数

JS内置的一个用来让代码延迟执行的函数,叫做setTimeout

语法:

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

setTimeout仅执行一次,可以理解为把一段代码延迟执行,平时书写时省略window

  <script>
    setTimeout(function(){
      alert('时间到了')
    },2000)
  </script>

清除延迟函数:

clearTimeout() 				//返回的是一个id

延迟器需要等待,所以后面的代码先运行

每使用过一次延迟定时器都会产生一个新的延迟定时器

JS的执行机制

JS语言的最大特点就是单线程,也就是说,同时只能做一件事。

所以当遇到一个耗时长的函数会导致页面渲染卡顿不连贯

所以为了解决这个问题,利用多核CPU的计算能力,HTML5提出web worker标准,允许JS脚本创建多线程。

于是JS中出现了同步和异步

本质区别:执行顺序不同

由于主线程不断地重复获得任务,执行任务,再获取任务在执行,所以这种机制被称为事件循环(event loop)

location对象

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

方法1:

//当作文件URL地址
console.log(location.href)
//可以通过JS方式自动跳转目的地址
location.href = 'http://www.itcast.cn'

方法2:

console.log(location.search)		//获取地址携带的参数,符号?后面的部分

方法3:

location.reload(true)		//reload用于刷新页面,传入true时强制刷新

navigator对象

记录浏览器的相关信息

常用属性:userAgent检测浏览器的版本及平台

history对象

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

常用属性:

history.back()		//可以后退功能
history.forward()		//前进功能
go(参数)			//前进后退功能,参数为1则前进1个页面,参数为-1则后退1个页面

本地存储

在以往的页面网页刷新之后数据会一同丢失,为了解决这问题,HTML5提出了解决方案。

本地存储:

1.数据存储在用户浏览器中

2.设置,读取方便,页面刷新不会丢失数据

3.容量大,分为sessionStorage(关闭浏览器数据丢失)和localStorage,各5M左右

语法:

存储数据时键值对都要用引号

localStorage.setItem(key,value1) 		增
localStorage.getItem(key)		查
localStorage.setItem(key,value2)		改
localStorage.removeItem(key)		删

只能存储字符串

本地存储只能存储字符串想要存储复杂数据类型

JSON.stringify()

const obj = {
uname: 'zr',
age : '19',
gender: '女'
}

localStorage.setItem('obj',JSON.stringify(obj))
localStorage.getItem('obj')			//获得的仍然是字符串

console.log(JSON.parse(localstorage.getItem('obj')))		//	JSON.parse()	将字符串转换成对象

拼接字符串的方法

cosnt arr = ['red','blue','pink']

const newArr = arr.map(function(element,index){
	console.log(element)		//返回数组的每一个值
	console.log(index)			//返回相对应的下标
})

	console.log(newArr.join())		//将数组内的所有值转换成字符串拼接在一起,小括号内书写字符串间隔的符号