BOM

描述

  • BOM表示为浏览器对象模型
  • BOM是由一系列对象构成的,这些对象可以理解为是浏览器提供的

Window对象

  • 表示当前运行HTML页面的浏览器
  • Window对象既是JavaScript访问浏览器的窗口,也是ECMAScript规范中的全局对象(Global对象)
<body>
<script>
    // 测试window对象
    console.log(window);

    var v = 100;/* 全局变量 */
    function fn(){/* 函数 */
        console.log('this is funciton');
    }
    // 作为全局变量或函数使用的话
    console.log(v);
    fn();

    // 全局变量是window对象的属性;函数是window对象的方法
    console.log(window.v);
    window.fn();

    // 预定义函数是Global对象的方法 - 在浏览器环境中,window对象代表Global对象
    parseInt();
    // window对象的属性或方法调用 - 允许省略"window."
    window.parseInt();

</script>
</body>

window对象的属性

<script>
    // BOM中其他对象是作为window对象的属性存在
    console.log(window.navigator);
    console.log(window.location);
    console.log(window.history);
    console.log(window.document);
    // window对象的self属性 - 表示window对象本身(是只读属性)
    console.log(window);
    console.log(window.self);// 还是window对象
    // window对象的innerWidth和innerHeight - 浏览器窗口的内部宽度和高度
    console.log(window.innerWidth, window.innerHeight);

</script>

window对象的方法

<body>
<!-- 点击按钮时,打开提示框 -->
<button id="btn">按钮</button>
<div id="dialog"></div>

<script>
    // 提示框
    // window.alert('xxxxxx');
    // 确定框
    // var flag = window.confirm('你确定退出吗?');
    // alert(flag);
    // 输入框
    /*var result = window.prompt('请输入你的用户名:');
    alert(result);*/

    var btn = document.getElementById('btn');
    btn.addEventListener('click',function(){
        var dialog = document.getElementById('dialog');
        dialog.style.display = 'block';
    });
</script>
</body>

navigator对象

  • navigator对象就是判断用户的浏览器以及操作系统
  • 通过navigator对象的userAgent属性来判断
<body>
<script>
    console.log('浏览器的代码名: ' + navigator.appCodeName);
    console.log('浏览器的名称: ' + navigator.appName);
    console.log('浏览器的平台和版本信息: ' + navigator.appVersion);
    console.log('运行浏览器的操作系统平台: ' + navigator.platform);

    console.log(navigator.userAgent);
</script>
</body>

定时器

  • 可以分为延迟执行和周期执行

延迟执行

  • 表示将指定的代码延迟特定的时间后在进行执行

setTimeout()方法

  • 表示设置一个定时器

    • 用于在指定时间后显示指定内容
  • 该方法接收两个参数

    • 第一个参数 - 一个函数(表示延迟执行代码的逻辑)
    • 第二个参数 - 表示延迟执行的时间(单位为毫秒 - 1000毫秒=1秒)
  • 该方法具有返回值 - 表示当前定时器的标识
  • 注意 - 定时器会打乱代码的默认执行流程

clearTimeout()方法

  • 表示清除指定的定时器
  • 该方法通过定时器的标识来清除指定的定时器

示例代码

<script>
    /* 测试代码 */
    console.log( '这是测试...' );
    /* 添加延迟执行的定时器 - 该方法是Window对象下的方法,所以可以省略 [Window.] */
    var s = setTimeout( function () {
        console.log( '这也是测试...' );
    }, 2000 );

    /* 清除指定的定时器 */
    clearTimeout( s );

    /* 测试代码 */
    console.log( '这还是测试...' );
</script>

周期执行

  • 表示将指定的代码每隔一段时间(定时器设置的时间)执行一次
  • 周期执行会形成类似于循环语句中死循环的显示效果

setInterval()方法

  • 表示设置一个定时器

    • 用于在指定时间后显示指定内容
  • 该方法接收两个参数

    • 第一个参数 - 一个函数(表示延迟执行代码的逻辑)
    • 第二个参数 - 表示延迟执行的时间(单位为毫秒 - 1000毫秒=1秒)
  • 该方法具有返回值 - 表示当前定时器的标识
  • 注意 - 定时器会打乱代码的默认执行流程

clearTimeout()方法

  • 表示清除指定的定时器
  • 该方法通过定时器的标识来清除指定的定时器

示例代码

<script>
    /* 测试代码 */
    console.log( '这是测试...' );

    /* 添加周期执行的定时器 - 该方法是Window对象下的方法,所以可以省略 [Window.] */
    var s = setInterval( function () {
        console.log( '这也是测试...' );
    }, 2000 );

    /* 清除指定的定时器 */
    clearTimeout( s );

    /* 测试代码 */
    console.log( '这还是测试...' );
</script>

蔡志远
9 声望5 粉丝