WEB前端基础(HTML+CSS+JavaScript)(中)之JavaScript基础语法BOM

JavaScript语法BOM部分

浏览器对象模型:

用于管理浏览器窗口及与浏览器出口之间通信功能

一、Window对象

表示运行HTML页面的浏览器窗口

该对象既是允许JavaScript逻辑访问浏览器窗口的唯一对象,也是ECMAScript规范中的Global全局对象

  1. window对象是浏览器窗口中的顶级(全局)对象
  2. window对象的属性和方法在调用时 - 允许省略‘window
  3. 其他五个BOM对象都是作为window对象的属性出现

1、浏览器窗口的宽高

  • innerWidth属性
  • innerHeight属性

2、resize事件

  • 当窗口大小变化时触发

3、self属性

  • self属性返回的是Window对象的引用,只读属性

二、Navigator对象

浏览器状态信息

  • navigator.appCodeName

  • navigator.appName

  • navigator.appVersion

  • navigator.platform

    浏览器代码名:Mozilla
    navigator.html:11 浏览器的名称:Netscape
    navigator.html:12 浏览器的平台和版本信息:5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36
    navigator.html:13 运行浏览器的操作系统平台:Win32
    
  • navigator.userAgent:获取浏览器所有信息

  • 获取浏览器信息

    
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>获取浏览器信息title>
    head>
    <body>
        
        <script>
            var ua = navigator.userAgent
            // if (/chrome/i.test(ua)){
            
            //     console.log('你使用的浏览器是Chrome')
            // }else if (/firefox/i.test(ua)){
            
            //     console.log('你使用的浏览器是Firefox')
            // }
    
        // 方案二:使用switch语句
            // console.log(ua)
            // Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138
            // Safari/537.36
            var regex = /chrome|firefox/i
            var info = ua.match(regex)[0]
            switch (info.toLowerCase()){
            
                case 'chrome' : 
                    console.log('你使用的浏览器是Chrome')
                break
                case 'firefox' :
                    console.log('你使用的浏览器是firefox')
                break
            }
        script>
    body>
    html>
    

三、History对象

  • forword():前进
  • back():后退
  • go(-n):往后退n步
  • go(n):往前走n步

四、Location对象

既是window对象的属性也是Document对象的属性

  • host:返回服务器名称和端口号
  • hostname:返回服务器名称
  • href
  • pathname:返回当前URL的目录和文件名
  • port:URL端口号
  • protocol:页面使用的网络协议
  • reload():重新加载
  • assign()
  • replace()

五、定时器

是window对象提供的

1、延迟执行

setTimeout(function,dealy)方法

设置一个定时器

  • function:函数逻辑
  • dealy:延迟时间(单位毫秒)
  • 返回值:表示当前定时器的标识

clearTimeout()

取消延迟

2、周期执行

setInterval(function,dealy)方法

设置周期执行的定时器

  • function:函数逻辑
  • dealy:延迟时间(单位毫秒)
  • 返回值:表示当前定时器的标识
//实现循环调用的方法:
		普通方法实现
        setInterval(() => {
     
            console.log('this is interval......')
        }, 1000);

        递归实现循环调用

        function fun() {
     
            console.log('this is interval``````')
            setTimeout(fun,3000)
        }
        fun()

        自调函数实现循环调用

        (function() {
     
            console.log('this is interval```')
            setTimeout(arguments.callee,1000)
        })()

六、HTML5动画实现定时器

requestAnimationFrame()方法

requestAnimationFrame(function(){
     
        console.log('this is requestAnimationFrame```')
        })

1、使用if语句实现:'获取浏览器信息’案例

var ua = navigator.userAgent
        if (/chrome/i.test(ua)){
     
            console.log('你使用的浏览器是Chrome')
        }else if (/firefox/i.test(ua)){
     
            console.log('你使用的浏览器是Firefox')
        }

2、使用switch语句实现:'获取浏览器信息’案例

 var ua = navigator.userAgent
 var regex = /chrome|firefox/i
        var info = ua.match(regex)[0]
        switch (info.toLowerCase()){
     
            case 'chrome' : 
                console.log('你使用的浏览器是Chrome')
            break
            case 'firefox' :
                console.log('你使用的浏览器是firefox')
            break
        }

你可能感兴趣的:(javascript)