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()) //将数组内的所有值转换成字符串拼接在一起,小括号内书写字符串间隔的符号