js_BOM

目录

Window对象

定义

属性

使用var定义的全局变量

navigator对象

history对象

location对象

 document对象

webStorage

方法

[1]输入输出

[2]定时器

打开关闭网页

事件

load事件

beforeunload事件


Window对象

定义

window对象是最顶级的对象,代表当前的浏览器窗口或标签页,它是 JavaScript 访问浏览器窗口的一个接口,并且也是 ECMAScript 规定的全局对象。这意味着在网页中定义的所有全局变量(var定义)、函数和对象都是 window 对象的属性

属性

使用var定义的全局变量

所有(使用var)定义的全局变量都是window对象的属性。

let aaa=111
console.log(window.aaa) // undefined
​
var bbb=111
console.log(window.bbb) // 111

innnerWidth/Height

innerWidth/Height 是只读属性,返回的是当前浏览器窗口的实际宽高(不包含滚动条滚动的距离,不包含工具栏、菜单栏等外部元素)。

<body>
  <script>
    console.log(window.innerHeight) // 729
  </script>
</body>
<style>
  div{
    height: 1000px;
  }
</style>

<body>
  <div></div>
<script>
  console.log(window.innerHeight) // 729
</script>
</body>

上述示例中,即使div的高度超过页面高度,页面出现滚动条,但是innerHight还是729。

虽然大多数浏览器已经兼容该语法,但是在想要确保兼容性时可以使用html/body标签的clientHeight属性

let height = document.documentElement.clientHeight || document.body.clientHeight || window.innerHeight;

let width = document.documentElement.clientWidth || document.body.clientwidth || window.innerWidth;

在很多情况下,可以监听页面的窗口发生变化时,做出一些样式处理

window.addEventListener('resize', function() {
    console.log('新的窗口内容区域高度:', window.innerHeight);
});

navigator对象

navigator对象是window对象的属性,作用是保存浏览器的相关信息

  • 浏览器版本

    • navigator.appVision

  • 浏览器名

    • navigator.appName

  • 浏览器代码名

    • navigator.appCodeName

history对象

history对象是window对象的属性,作用是保存浏览器窗口访问过的信息

  • history.back()

    • 后退到上一个浏览的页面,如果该页面是第一个打开的,则无效果

  • history.forward()

    • 前进到下一个浏览页面,如果该页面是第一个打开的,则无效果

location对象

location对象是window对象的属性,作用是获取url的相关信息。

 document对象

document对象是window对象的属性,作用是返回该窗口内装载的html文档,可以通过document获取dom元素,从而操作dom

eg:

  let btn = document.getElementsByTagName('button')[0]

webStorage

webStorage是es6新增的用于存储信息到本地的对象,也是window的属性,作用是将数据保存在浏览器。

方法

[1]输入输出

  • prompt('输入弹框')

  • confirm('你确定?')

  • console.log('')

  • alert('')

  • document.write()

[2]定时器

  • setInterval(function(){},N)

  • setTimeout(function(){},N)

  • clearInterval(定时器编码)

  • clearTimeout(定时器时间编码)

打开关闭网页

  • 打开网页:open('网址')

  • 关闭网页:

    • 关闭当前网页:close()

    • 关闭指定网页:page.close()

  • 举例说明

    • <body>
         <button>打开</button>
         <button>关闭</button>
         <script>
           // 点击打开按钮,打开百度网页,点击关闭按钮,关闭百度网页
           let btn = document.getElementsByTagName('button')[0]
           let btn1 = document.getElementsByTagName('button')[1]
           let page
           btn.onclick = function () {
             page = open('http://https://www.baidu.com/')
           }
           btn1.onclick = function () {
             page.close()
           }
         </script>
       </body>

parseInt/parseFloat

  • parseInt是 JavaScript 中用于解析字符串并返回一个整数的函数。它可以根据指定的基数(进制)将一个表示数字的字符串转换为整数
    • 语法
      parseInt(string, radix)
      • string: 要被解析的值。非字符串输入会被强制转换为字符串
      • radix: 可选参数,表示要解析的数字的基数(从2到36);默认10进制,以0x开头默认16进制
    • 示例
      • console.log(parseInt('1100100', 2)) // 100

  • parseFloat:parseFloat() 是 JavaScript 中用于解析字符串并返回一个浮点数的函数;与 parseInt不同,parseFloat专门用于处理包含小数点的数值字符串,并且总是使用十进制系统进行转换,而不会考虑其他基数。
    • 语法
      • parseFloat(string)
    • 示例

      • // 截取到从数字开始的浮点数
        console.log(parseFloat('33.333wefbedsf')) // 33.333
        // 能够去除空格并能正确导0
        console.log(parseFloat('     0000033.333wefbedsf')) // 33.333
        // 找不到正确的数值,返回结果为NaN
        console.log(parseFloat('wefbedsf')) // NaN

btoa/atob

btoa用于执行 Base64 编码 => 将二进制数据ASCII字符串转换成一个base64编码过的ASCII字符串。

atob用于执行 Base64 解码 => 将通过 Base64 编码后的字符串解码回原始的二进制数据(以字符串形式表示)。

事件

load事件

  • window.οnlοad=function(){}

    • 等待DOM树和所有外部资源加载完毕再执行此方法内部的代码

    • 是一个入口函数

beforeunload事件

  • window.οnbefοreunlοad=function(){}

    • 在页面即将关闭的一瞬间执行此处的代码

    • 使用场景

      • 阅读完自动清空浏览器记录

      • 邮箱关闭自动保存到草稿箱

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值