BOM
浏览器对象模型,用来完成对浏览器的操作 作为window对象的属性保存
window 代表整个浏览器的窗口,window是网页中的全局对象
navigator 代表当前浏览器的信息,通过该对象可以识别不同的浏览器
location 代表当前浏览器的地址栏信息
history 代表浏览器的历史纪录,由于隐私不能获取到历史记录,只能操作向前或向后操作,在当次访问有效
screen 代表用户的屏幕信息
navigator
通过useragent 不能判断,可以通过一些浏览器中特有的对象,来判断浏览器的信息,比如:activexobject
var ua=navigator.UserAgent;
//正则判断 i表示忽略大小写
if(/firefox/i.test(ua)){
alert("火狐")
}else if(/chrome/i.test(ua)){
alert("chrome")
}else if(/msie/i.test(ua)){
alert("ie")
}else if("ActiveXObiect" in window){
alert("ie11")
}
history
操作向前或向后操作
history.back()
history.forward()
history.go(-1)//会退一个url
location
获取地址栏信息,即当前页面的url
assign()用来跳转新的url 作用和修改location效果一致
reload()用于重新加载页面
定时器
setinterval() 定时调用,可以将一个函数,每隔一段时间执行一次
参数:1.回调函数 2.每次调用的事件,单位是毫秒
会返回一个number类型的数据timer 这个数字是定时器的唯一标识 可以用clearInterval()关闭
var num=1;
var timer=setInterval(function(){count.innerHTML=num++;},1000);
clearInterval(timer)
延时调用
延时调用一个函数不马上执行,而是隔一段时间之后执行,而且只会执行一次
var num=1;
var timer=setTimeout(function(){count.innerHTML=num++;},1000);
clearTimeout(timer)
类样式
使用obj.style.属性来改样式,会导致浏览器渲染次数过多。
故通过修改元素的class属性来间接的修改样式,浏览器只需要重新渲染一次;并使得表现和行为进一步分离
<body>
<div box id="box1" class="b1"></div>
</body>
<style>
.b1{
backgroundcolor="red"
}
.b2{
width=100px
}
</style>
<script>
var box1=doucument.getElementbyid("box1")
box1.style.backgroundcolor="yellow"; /*通过修改style来修改样式*/
box1.className += " b2"/*通过修改class属性来修改样式*/
</script>
json
js中的对象只有js自己认识,其他语言都不认识 故创建了json json其实就是一个特殊格式的字符串 这个字符串可以被任意语言所识别,并且可以转化成任意语言的对象,用于数据的交互
json字符串中的属性名必须加双引号
json分类: 1.对象 {} 2.数组[]
json中允许的值:字符串 数值 布尔值 null 对象 数组
var obj = '{"name":"张三","age":18,"gender":"male"}' /*对象*/
var arr = '[1,2,3,"hello",true]'
JSON.stringify() 将js对象转化为json字符串
JSON.parse() 将json字符串转化为js对象
var obj = '{"name":"张三","age":18,"gender":"male"}'
var o=JSON.parse(obj)
console.log(o.name)