BOM(browser object model)浏览器对象模型
window是浏览器的一个实例,在浏览器中,window对象有双重角色,它既是通过Javascript访问浏览器窗口的一个接口,又是ECMAScript规定的Global对象(全局对象)。
1、全局变量/局部变量
在函数外面声明的变量,是一个全局变量,全局变量是window的一个属性
<script>var a = 10;/* 在函数外面声明的变量,是一个全局变量全局变量是window的一个属性*/console.log(window.a)</script><script>var a = 10; //全局变量function go(){var b = 20; //局部变量console.log(b);}console.log(a);console.log(b);</script>
1.1、作用域
在函数外面声明的变量,是一个全局变量
作用域: 就是一个变量能够生效的范围
<script>/*在函数外面声明的变量,是一个全局变量作用域: 就是一个变量能够生效的范围*/var a = 10;function go(){var b = 20;console.log(b);}console.log(a)console.log(b);</script>
1.2、声明提前
JS在执行代码的时候,会将所有使用var声明的变量,放在作用域的顶层集中创建 ,赋值留在原地
<script>/*JS在执行代码的时候,会将所有使用var声明的变量,放在作用域的顶层集中创建,赋值留在原地*/var a,b;console.log(a);a = 10;b = 20;console.log(b);</script>
2、window对象的方法
window方法的特点:window是可以省略
1、window是访问窗口的一个接口
2、是一个全局对象
2.1、alert
<script>window.alert("hello world");</script>
2.2、window.prompt
参数说明
text:在对话框中显示的文本
defaultText:默认输入文本
返回值:点取消按钮,返回null
点确定按钮,返回输入的文本
<script>var b = prompt("请输入你的年龄");console.log(b);if(b){alert("输入成功")}else{alert("不能没有输入")}</script>
2.3、window.confirm
功能:显示一个带有指定消息和包含确定和取消按钮的对话框。点击确定返回true,取消返回false;
var value = window.confirm("去不去")console.log(value) // true / false
2.4、点击删除,出现弹框,点击确认即删除
<body><ul><li>html <button>删除</button></li><li>css <button>删除</button></li><li>javascript <button>删除</button></li></ul><script>var btns = document.getElementsByTagName("button");/* 1、给每个btn绑定点击事情 */for(var i=0;i<btns.length;i++){btns[i].onclick = function(){/* 2、点击对应的元素,将其父元素删除 */var isShow = confirm("是否删除");console.log(isShow);if(isShow){this.parentNode.style.display="none"}}}</script>
2.5、history 对象
功能:回到历史记录的上一步
<button id="btn">btn</button><script>var btn = document.getElementById("btn");btn.onclick = function(){/* 回退到前一个页面 */history.back();}</script>history对象保存了用户在浏览器中访问页面的历史记录语法:history.back()功能:回到历史记录的上一步相当于是用了history.go(-1)//-1表示前一步,-2前两部语法:history.go(1)功能:回到历史记录的前一步相当于history.forward()语法:history.go(-n)功能:回到历史记录的前n部语法:history.go(n)功能:回到历史记录的后n步
2.6、screen 对象
<script>/* 屏幕的width */var sw = screen.availWidth;/* 屏幕的高度 */var sh = screen.availHeight;console.log(sw);console.log(sh)/* 可视区域的高度 */var vh = document.documentElement.clientHeight;console.log(vh)</script>screen对象包含有关客户端显示屏幕的信息screen.availWidthscreen.availHeight// 获取屏幕的宽度var screenWidth = window.screen.availWidth;console.log(screenWidth);// 获取屏幕的可视区var viewWidth = document.documentElement.clientWidth;console.log(viewWidth);
2.7、判断滚动条到达底部
<style>*{margin:0;padding:0}body{height: 2000px;}div{width:300px;height: 1700px;background-color: red;}</style></head><body><div></div><script>var bodyH = document.body.clientHeight;var vh = document.documentElement.clientHeight;// console.log(bodyH)console.log(vh)/* 滚动条滚动的距离+vh ==bodyH */window.onscroll= function(){var scrollTop = window.scrollY;console.log(scrollTop)}/* scrollTop+vh ==bodyH 判断页面到底了*/</script></body>
