HTML+JS相关知识点
- DOM
> DOM=DocumentObjectModel,文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构
理解为浏览器会把HTML文档解析为一个对象。 就像一个树一样。比如下面会有和然后其他标签都是这棵树上的数值和树叶。
-
节点种类 12
-
比较 innerText、 nodeValue、 textContent
这三个api都是取某一个文本内容
水果
菠萝
举例
-
nodeValue:只能取文本节点的内容。
const app = document.getElementById('app')
console.log(app.nodeValue) // null
const app = document.getElementById('app')
console.log(app.childNodes[0].nodeValue) // null
console.log(app.childNodes[1].nodeValue) // null
- innerText
innerHTML与innerText
这两个api的区别功能是从起始位置到终止位置的内容, 区别在于是否去除Html标签 。
console.log("innerText", app.innerText);//取内容 过滤了源代码
console.log('innerHTML',app.innerHTML)//取代码
- textContent
功能是textContent 属性设置或返回指定节点的文本内容,以及它的所有后代。
与innerText的区别
-
- 会获取style=“display:none”中的文本
- 会获取style标签中的文本
- 不解析html更快捷性能好
console.log("textContent", app.textContent);
-
语义化标签
html5语义化标签
-
优势
- 代码结构清晰,方便阅读,有利于团队合作开发。
- 方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以语义的方式来渲染网页。
- 有利于搜索引擎优化(SEO)。
:页面主题内容。
:h1~h6,分级标题, 与 协调有利于搜索引擎优化。
:无序列表。
- :有序列表。
:页眉通常包括网站标志、主导航、全站链接以及搜索框。
常见语义化标签
HTML
导航栏
段落——使用section标记+h1就可以非常简单的完成标题分级
内容
正文引述2
删除的内容
添加的内容
图片引用
HTML5Logo
-
figure:规定独立的流内容(图像、图表、照片、代码等等)(默认有40px左右margin)。
-
figcaption: 内容标题
exports.call = function (context, ...args) {
// this 为调用方法 例:f.call this = f
context.fn = this;
const result = context.fn(...args);
delete context.fn;
return result;
};
? 运行结果??:
(base) ? call-apply-bind git:(master) ? jest ../call-apply-bind
PASS __tests__/index.spec.js
实现call 、apply、 bind函数
? 测试call方法 (7 ms)
? 测试apply方法 (1 ms)
? 测试bind方法 (1 ms)
Test Suites: 1 passed, 1 total
Tests: 3 passed, 3 total
Snapshots: 0 total
Time: 1.657 s
Ran all test suites matching /..\/call-apply-bind/i.
(base) ? call-apply-bind git:(master) ?
- pre: 预格式化文本 保留空格和换行符
- samp: 标签表示一段用户应该对其没有什么其他解释的文本字符。要从正常的上下文抽取这些字符时,通常要用到这个标签。
- code: 用于引用计算机代码
document以外的常用对象
1.BOM模型
window对象:
Window 对象表示浏览器中打开的窗口。如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 属性
pageXOffset //设置或返回当前页面相对于窗口显示区左上角的 X 位置。
pageYOffset //设置或返回当前页面相对于窗口显示区左上角的 Y 位置。
screenLeft,screenTop,screenX,screenY //声明了窗口的左上角在屏幕上的的 x 坐标和 y 坐标。
IE、Safari 和 Opera 支持 screenLeft 和 screenTop,而 Firefox 和 Safari 支持 screenX 和 screenY。
方法
onload() //当页面完全加载到浏览器上时,触发该事件
onscroll()//当窗口滚动时触发该事件
onresize()//当窗口大小发生变化时触发该事件
setInterval()//按照指定的周期(以毫秒计)来调用函数或计算表达式。
setTimeout()//在指定的毫秒数后调用函数或计算表达式。
open()//打开一个新的浏览器窗口或查找一个已命名的窗口。
location对象:包含有关当前 URL 的信息。
属性
location.hostname; // 返回 web 主机的域名
location.port; // 返回 web 主机的端口 (80 或 443)
location.protocol; // 返回所使用的 web 协议(http:// 或 https://)
location.href; // 返回当前页面的url地址
location.host; // 返回当前页面url的主机ip
location.pathname; // 返回当前页面的路径和文件名
方法
location.assign('about:/blank') // 载入一个新文档
location.reload() // 重新载入文档
location.replace('http://www.baidu.com') // 替换
navigator对象:包含有关浏览器的信息
navigator.appCodeName; //浏览器代码名
navigator.appName; //浏览器步伐名
navigator.language; //浏览器当前语言
navigator.platform; //操作体系类型win32
navigator.plugins;
navigator.appVersion; //浏览器版本(包括 体系版本)
navigator.userAgent; //用户代理头的字符串表示
navigator.onLine; //用户否在线
navigator.cookieEnabled; //浏览器是否撑持cookie
navigator.mimeTypes;
screen:它包含客户端显示器的信息,比如像素宽度和像素高度。
screen.availWidth; // 返回浏览器可用宽度 像素为单位 1366
screen.availHeight; // 728
screen.availTop; // 0
screen.availLeft; // 0
history对象: 表示当前窗口首次使用以来用户的导航历史记录。每个 window 都有自己的 history 对象。
history.back() - 加载历史列表中的前一个 URL。返回上一页。
history.forward() - 加载历史列表中的下一个 URL。返回下一页。 history.go(“参数”) -1表示上一页,1表示下一页,或者具体页面的URL。
2.WebAPI :MDN Web API 接口参考 | MDN (mozilla.org)
-
storage对象:本地存储,有临时存储sessionStorage,永久存储localStorag
-
Fetch:本质上是一种标准,该标准定义了请求、响应和绑定的流程。 Fetch标准还定义了Fetch () JavaScript API
-
Console:Console API提供了允许开发人员执行调试任务的功能,例如在代码中的某个位置记录消息或变量值,或者计算任务完成所需的时间。
-
IndexDB:IndexDB 是一个运行在浏览器上的非关系型数据库。理论上是没有存储上限的一般来说不会小于 250M。可以存储字符串和二进制数据。
-
WebSQL:WebSQL 是浏览器端的关系行数据库,引入了一组使用 SQL 操作客户端数据库的 API。
-
Application Cache:WebSQL Application Cache 是 HTML5 中定义的一种离线存储技术标准。这种技术可以让开发者明确地指定页面中哪些静态资源可以在第一次访问网页的同时缓存到本地,并且在下次访问该网页时向服务器询问本地缓存的资源是否需要更新