js第五周笔记

本文详细介绍了JavaScript的浏览器对象模型(BOM),包括BOM中的核心对象window,如定时器、事件对象event及其相关方法。此外,文章还讲解了服务器端的基本概念,如服务器端语言的重要性,以及Node.js的概述、安装与基本知识,强调了Node.js在全栈开发中的作用。文章末尾提到了模块化开发和npm包管理器,以及数据库在数据交互中的角色。
摘要由CSDN通过智能技术生成

一、BOM

Browser Object Model:浏览器对象模型:提供专门用操作浏览器的一些对象(属性和方法),没有标准(大部分浏览器还是统一的,唯独老IE与众不同)- 使用率相对较低
      重点:定时器、事件对象event
      DOM:是有标准的:w3c规定的,几乎没有兼容性问题

二、window对象介绍:扮演着两个角色

代替了ES中的global,充当全局对象 - 保存全局变量和全局函数
自己也带有一些属性和方法,指代当前窗口本身

1、网页打开新链接的方式:4种 - 目的:提升用户的体验感
            1)、替换当前页面,可以后退
                HTML:<a href="url">内容</a>
                     JS:open("url","_self");

            2)、替换当前页面,禁止后退 - 场景:电商网站,付款后不允许退回去再次付款
                history对象:记录着【当前窗口】的历史记录,只有有了历史才能前进后退
                location对象:记录着【当前窗口】正在打开的url,而他又一个方法叫做替换,替换是不会产生任何历史记录的,但是url替换后网页必然跳转
                     JS:location.replace("新url")

            3)、新窗口打开,可以打开多个
                HTML:<a href="url" target="_blank">内容</a>
                     JS:open("url","_blank");

            4)、新窗口打开,只能打开一个 - 场景:电商网站,只允许用户打开一个付款页面
                HTML:<a href="url" target="自定义name">内容</a>
                自定义name的意思:每一个窗口底层都有一个名字,target其实就是在设置名字,name如果相同,新打开的窗口就会把旧窗口给替换掉(刷新)
                     JS:open("url","自定义的name");
        
            HTML能做的,JS都能做,JS能做的,HTML不一定可以

            扩展a标签的作用:
                ①、跳转
                ②、锚点
                ③、下载:<a href="xx.exe/zip/rar/7z">内容</a>
                ④、打开:<a href="xx.图片后缀/txt">内容</a>
                ⑥、直接书写js:<a href="javascript:js代码;">内容</a>

2、window提供了属性和方法:
            属性:获取浏览器的完整大小:outerWidth/outerHeight;
                      获取浏览器的文档显示区域的大小:innerWidth/innerHeight
                      获取屏幕的完整大小:screen.width/height;
                 每个人的电脑分辨率是不一样的

            方法:1)、打开窗口:var newWindow=open("url","自定义的name","width=,height=,left=,top=");
                    注意:①、第三个配置参数没有传入时,窗口大小和浏览器一样,并且黏在浏览器上面(融为一体)
                               ②、写入了第三个实参,则会脱离浏览器并且一个独立的小窗口,并且可以保存起来,设置为他绑定事件
                               ③、宽高不能设置的太小了
                      2)、关闭窗口:window/newW.close();
                      3)、修改窗口的大小:newW.resizeTo(new宽,new高);
                      4)、修改窗口的位置:newW.moveTo(x,y);

3、*****定时器:
        1)、周期性定时器
            开启:timer=setInterval(callback,间隔毫秒数);
            停止:clearInterval(timer)

        2)、一次性定时器
            开启:timer=setTimeout(callback,间隔毫秒数);
            停止:clearTimeout(timer)

        注意:一次性和周星期底层都是一样的,甚至可以呼唤,所以你到底以后用哪个无所谓

        面试题:函数 和 循环 和 定时器都能反复执行操作,区别? - 时机
            ①、函数 - 用户触发、程序员调用
            ②、循环 - 一瞬间基本就结束了
            ③、定时器 - 等待一段时间做一次

两个小案列

1、点不到的小窗口/div(广告)
        有可能下次生成的位置,我的鼠标刚好就在里面
        扩展:*****获取鼠标的位置:
            1)、绑定事件:事件处理函数形参可以写一个e,自动获取到事件对象event - 明日的重点
            2)、获取坐标:3种
                e.screenX/Y - 获取鼠标相对于屏幕的位置
                e.clientX/Y   - 获取鼠标相对于客户端/浏览器的位置
                e.pageX/Y    - 获取鼠标相对于页面的坐标

2、鼠标的跟随动画:
        1)、事件window/document.onmousemove
        2)、js的加载速度比图片的加载速度快,加载事件:onload事件
        3)、删除图片,实在动画开始时开启了定时器

三、BOM的其他对象

1、history对象:保存【当前窗口】的历史记录(打开【过】的url),可用于
        前进:history.go(1);
        后退:history.go(-1);
        刷新:history.go(0);

2、*navigator对象:保存了当前浏览器的基本信息,可以使用js来判断我们是什么浏览器以及版本号 - 类似于css hack(浏览器兼容性问题的,专门针对老IE),但是更强大,单独为老IE写js
        属性:navigator.userAgent;    -   能够得到一个字符串,包含着是什么浏览器以及版本号,想办法去拿到你需要的部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值