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.availWidth
screen.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>