BOM window 对象
window 对象是全局对象,所有在全局作用域中声明的变量、对象、函数都会变成 window 对象的属性、对象、方法,处于所有对象的顶级。window对象,不需要通过 new 关键字创建实例,只需要通过“对象名.成员”的格式访问其属性和方法。
HTML DOM 的 document 也是 window 对象的属性之一:window.document.getElementById("header");
等同于:document.getElementById("header");
由此,我们可以明确规律:
- 全局变量 是 window 对象的属性。
- 全局函数 是 window 对象的方法。
基于 window 对象是全局对象的概念,它下属的所有全局变量和函数都是它的属性,并且所有原生的构造函数及其它函数都存在与它的命名空间下,因此,在调用 window 对象的方法和属性时,可以省略 window 对象的引用。但在局部作用域中定义不会归入 window 对象名下,只有在全局作用域中定义才会被自动归入到 window 对象名下。
<script>
var NameNew="Hevate"; //定义变量
var ArrNew=new Array("one","two","three"); //定义对象
function MyName(){ // 定义函数,不会直接执行,需要经过调用
var NameNew = "liu"
console.log("因为 MyName() 函数存在于全局作用域中,所以 this 被映射到 window,this.MyName 即是 window.MyName")
console.log("MyName() 不加上 window 或 this:"+NameNew)
console.log("MyName() 加上 this:"+this.NameNew)
console.log("MyName() 加上 window:"+window.NameNew)
}
/* 输出变量*/
window.console.info("对于变量,加上 window 输出:"+NameNew) //输出 Hevate
console.info("对于变量,不加 window 同样输出:"+NameNew)
/* 输出对象*/
window.console.log("对于对象,加上 window 输出:"+ArrNew) //输出 one,two,three
console.log("对于对象,加上 window 输出结果相同:"+ArrNew)
/* 输出函数*/
window.MyName() //调用 函数 MyName()
MyName() //调用 函数 MyName()
</script>
因为 MyName() 函数存在于全局作用域中,所以 this 被映射到 window,this.MyName 即是 window.MyName
Screen 对象
包含有关客户端显示屏幕的信息,colorDepth 属性和 pixelDepth 属性的作用是完全相同的。
| 属性 | 说明 |
|---|---|
| availHeight | 返回屏幕的高度(不包括Windows任务栏) |
| availWidth | 返回屏幕的宽度(不包括Windows任务栏) |
| colorDepth | 返回目标设备或缓冲器上的调色板的比特深度 |
| height | 返回屏幕的总高度 |
| pixelDepth | 返回屏幕的颜色分辨率(每象素的位数) |
| width | 返回屏幕的总宽度 |
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div class="nav"></div>
</body>
<script type="text/javascript">
var result;
result = "<p> 屏幕可用高度:"+screen.availHeight+" px</p>"
result += "<p> 屏幕可用高度:"+screen.availWidth+" px</p>"
result += "<p> 屏幕总高度:"+screen.height+" px</p>"
result += "<p> 屏幕总宽度:"+screen.width+" px</p>"
result += "<p> 屏幕颜色分辨率,每像素的位数:"+screen.pixelDepth+"</p>"
result += "<p> 颜色位深度:"+screen.colorDepth+"</p>"
if(screen.colorDepth<=8){
result += "<p>8位屏的简单蓝色</p>"
document.body.style.background = "#0000FF"
}else{
result += "<p>现代屏的华丽蓝色</p>"
document.body.style.background = "#87CEFA"
}
document.getElementsByClassName("nav")[0].innerHTML = result;
</script>
</html>
Reference