// window.alert('弹出内容') 警告框
// window.prompt('弹出内容') 输入框
// 以 字符串 形式 存储输入的数据内容
// 实际项目中大部分使用的是input
// window.confirm('弹出内容') 确认框
// 点击确定 返回值 是 true
// 点击取消 返回值 是 false
// 实际项目中大量用于 删除,修改,提交等确认操作
// 对滚动条高度监听
// 1,获取滚动条高度
// 兼容,是否有 文档类型声明 <!DOCTYPE html>
// 有 文档类型声明 <!DOCTYPE html>
// 通过 html 标签对象,获取滚动条滚动高度
// var h1 = document.documentElement.scrollTop;
// var w1 = document.documentElement.scrollLeft;
// 没有 文档类型声明 <!DOCTYPE html>
// 通过 body 标签对象,获取滚动条滚动高度
// var h2 = document.body.scrollTop;
// var w2 = document.body.scrollLeft;
// 如果有 文档类型声明 document.documentElement.scrollTop; 结果是有数值
// document.body.scrollTop; 结果是数值为 0
// 如果没有 文档类型声明 document.documentElement.scrollTop; 结果是数值为0
// document.body.scrollTop; 结果是有数值
// 兼容语法 通过 逻辑或 给变量赋值
// 短路求值:
// 逻辑与,第一个表达式是 false , 整个逻辑表达式结果是 false , 第二个表达式不会执行
// 逻辑或,第一个表达式是 true , 整个逻辑表达式结果是 true , 第二个表达式不会执行
// 短路赋值:
// 通过逻辑或,给变量赋值,如果第一个表达式结果可以转化为 true , 赋值第一个表达式的数值
// 如果第一个表达式结果可以转化为 false , 赋值第二个表达式的数值
// 用过逻辑与,给变量赋值,如果第一个表达式结果可以转化为 true , 赋值第二个表达式的数值
// 如果第一个表达式结果可以转化为 false , 赋值第一个表达式的数值
// 总结: 短路赋值的原理是短路求值,就是看第二个表达式是否执行
// 如果第二个表达式不执行,变量中赋值第一个表达式的数值
// 如果第二个表达式 执行,变量中赋值第二个表达式的数值