7.BOM

BOM

1. 什么是BOM(Browser Object Model) > 浏览器对象模型
		浏览器给我们提供的一套操作浏览器窗口的属性和方法
    BOM的顶级对象是 window(出了浏览器,什么也干不了)
				是一个对象,当你打开一个页面的时候就有一个 window
        你在全局定义的所有变量都在 window (console输入window可以查看)
		所有和 BOM 相关的api都是 window.xxx
				在写js代码的时候,可以省略window.

1.获取浏览器窗口尺寸

innerWidth

innerHeight

浏览器可视窗口的尺寸
浏览器由可能有滚动条 滚动条是算尺寸的
1.两个属性
		innerWidth
    innerHerght
    // 都包含滚动条 直接使用就行

2.浏览器的弹出层

三个弹出层,可以弹出一些信息
1.alert() // 警告框
		// 一个按钮 一些提示文本
2.confirm() // 选择框
		// 提示文本 选择取消 两个按钮
3.prompt() // 输入框
		// 提示文本 输入框 确定 取消按钮

// 都会阻断程序的继续执行
alert('提示文本') // 返回值:undefined
confirm('提示文本') // 返回值:布尔值 确定true 取消 false
prompt('提示文本') // 返回值:确定,文本框内容 取消就是 null

3.浏览器的地址栏(重点)

一个地址包含的内容:  
		// http://www.baidu.com?user=admin&password=123#abc
		1.http // 传输协议  前后端交互的方式
    2.www.baidu.com // 域名 ip端口
		3.?user=admin&password=123 // 查询字符串(queryString) 不影响打开页面 携带的信息
		4.`#abc` // 哈希(hash) 锚点定位

==================================

在window下有一个成员叫 location 他是一个对象 里面存储着和网页地址所有的信息
    1.hash // 当前页面的 hash 值
    2.href // 是一个读写的属性(当前地址栏地址):获取当前打开的页面地址(中文是url编码格式):设置当前打开的页面地址(跳准页面用的)
		3.search // 当前地址中 查询的字符(queryString)
    4.reload() // 从小加载当前页面 不能写在 打开页面就执行的

解析查询字符串

// 出现情况 
没有数据("") 有数据(?key=value&key=value)
// 封装一个函数
				var str = '?name=lddragon&age=18'
        function parseQueryString(str){
            // 首先判读是否有值
            if(str === ''){
                return {} 
            }
            // 解析字符串
            // 1.去除?号      
            str = str.slice(1)
            // 2.判断有几个参数
            var strList = str.split('&')
            // 两种情况 [一个] [多个]
            // 3.循环遍历拿出每一个做处理
            // 创建一个对象
            var queryObj = new Object
            for(var i = 0;i<strList.length;i++){
                // 拿到每一个元素
                // 分割等于号
                var innerStrList = strList[i].split('=')
                 // 拿到元素
                queryObj[innerStrList[0]] = innerStrList[1]
            }
            return queryObj
        }

4.浏览器的历史记录

操作浏览器前进后退的事
window 下 有个 history 的成员 是一个对象 // 里面包含了一些操作历史记录的属性和方法
	1.history.back() // 回退到上一条记录 前提有个记录
	2.history.forward() // 前进到下一跳历史记录 必须有过回退才可以前进
	3.history.go(整数) // 正整数:前进  0:刷新 负整数:后退 数字控制回退几次

5.浏览器版本信息(了解)

用来区分浏览器
window下有个成员叫 navigator // 是一个对象 存储浏览器的版本信息
	1.userAgent // 表示浏览器的版本以及信息
  2.appName // 所有的浏览器都是统一的名字 netscape 
  3.platform // 浏览器所在的操作系统

6.浏览器常见事件

// 由浏览器出发的事件
	1.window.onload = function(){} // 页面所有资源加载完毕执行
			// 所有资源 = 图片视频音频
			作用:js前置 // 把script放在head中是不能操作dom的 从上到下 最好加上 window.onload
  2.window.onscroll = function(){} // 浏览器滚动条滚动的时候触发 不分横向纵向
			// 楼层导航 回到顶部页面 京东案例 
			// 瀑布流
	3.window.onresize = function(){} // 浏览器可视窗口改变触发 结合 innerwidth innerheight结合使用

7.浏览器卷去的高度和宽度

// 当页面比窗口宽或者高的时候 会有一部分随着滚动被隐藏的 
// 我们管 上面隐藏额叫做 卷去的高度
// 我们管 坐边隐藏的叫做 卷去的宽度
// 获取

// 高度
1.document.documentElemet.scrollTop //必须要有DOCTYPE标签
2.document.body.scrollTop //必须要没有 DOCTYPE标签
// 兼容写法
var scrolltop = document.ducumentElemet.scrollTop || document.body.scrollTop

// 宽度
1.document.documentElemet.scrollLeft //必须要有DOCTYPE标签
2.document.body.scrollLeft //必须要没有 DOCTYPE标签
var scrollleft = document.ducumentElemet.scrollLeft || document.body.scrollLeft

8.浏览器滚动到

通过js代码指定浏览器滚动到什么位置
1.scrollTo() 
		// scrollTo(横向坐标,纵向坐标) 瞬间定位
		// scrollTo({top:纵向坐标,left:横向坐标}) 可以依靠第三个配置项 控制是否瞬间定位
				// behavior: smooth instant
				// 不能决定滚动时间 需要自己完成
<body>
    <div id="box">回到顶部</div>
    <div id="background"></div>
    <style>
        #box{
            background-color:red;
            text-align: center;
            width: 42px;
            height: 42px;
            position: fixed;
            right: 20px;
            bottom: 20px;
            display: none;
        }
        #background{
            width: 100%;
            background-color:cornflowerblue;
            height: 2000px;
        }
        body{
            margin: 0;
            padding: 0;
        }
    </style>
    <script>
        // 实时获取滚动条
        window.onscroll = function(){
            // 判断卷去高度是否大于200
            var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
            console.log(scrollTop)
            if (scrollTop>200){
                box.style.display = 'block'
            }else{
                box.style.display = 'none'
            }
        }
        // 回到最上面
        box.onclick = function(){
            scrollTo({top:0,left:0,behavior:'smooth'})
        }
    </script>
</body>
// document.documentElemet.scrollLeft //必须要有DOCTYPE标签
// document.body.scrollLeft //必须要没有 DOCTYPE标签
// 上面两个可以读写 还可以设置
// 自定义
        var now = 0
        var time = 0
        box.onclick = function(){
            // 设置一个定时器 每隔30毫秒设置
            time = setInterval(function(){
                // 获取当前隐藏行高
                var scrollTop = document.documentElement.scrollTop || document.body.scrollTop
                // 判断是否为0
                if(scrollTop === 0){
                    clearInterval(time)
                }else{
                    // 设置
                    document.documentElement.scrollTop = scrollTop - 20
                }
            },30)
        }

        // 实时获取滚动条 
        window.onscroll = function(){
            if (now<=document.documentElement.scrollTop)clearInterval(time)
            now = document.documentElement.scrollTop
        }
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值