学习打卡-Day3

124 阅读3分钟

HTML

DOM和JavaScript的关系

文档对象模型(DOM)是一个独立于语言,用于操作XML和HTML文档的API,在web端,我们常用来操作HTML,但其实DOM也是可以操作XML文档的。

我们现在知道,DOM是一个独立于语言的API,换句话说,DOM是一个与语言无关的API,别的语言也可以实现操作DOM的具体api,但是它在浏览器中是用JavaScript来实现的,也因此,DOM是现在JavaScript编码中很重要的一部分,因为JavaScript很多时候都在操作底层文档。

JS

sort() 对数组进行排序

API

arr.sort([compareFunction]) // compareFunction: (a, b) => {}

如果指明了 compareFunction ,那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:

  • 如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;

  • 如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);

  • 如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。

  • compareFunction(a, b) 必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。

  1. 默认无函数,排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的
[3, 15, 8, 29, 102, 22].sort(); // arr: [102, 15, 22, 29, 3, 8]
  1. 带函数的比较
 [3, 15, 8, 29, 102, 22].sort((a,b) => a - b); // arr: [3, 8, 15, 22, 29, 102]
  • 返回值大于0 即a-b > 0 , a 和 b 交换位置
  • 返回值大于0 即a-b < 0 , a 和 b 位置不变
  • 返回值等于0 即a-b = 0 , a 和 b 位置不变

对于函数体返回b-a可以类比上面的返回值进行交换位置

CSS

分析比较 opacity: 0、visibility: hidden、display: none 优劣和适用场景

共性

都能让元素不可见

区别

结构继承性能
display: none不渲染该元素:元素完全从渲染树中消失,渲染的时候不占据任何空间是非继承属性:子孙节点消失,从渲染树消失,通过修改子孙节点属性无法显示修改元素造成文档回流,读屏器不会读取 display: none 元素的内容,性能消耗较大
visibility: hidden渲染元素:元素继续占据空间,内容不可见,不能点击是继承属性:子孙节点消失由于继承了 hidden,通过设置 visibility: visible 可以让子孙节点显示修改元素只会造成本元素的重绘,性能消耗较少,读屏器读取
opacity: 0渲染元素:元素继续占据空间,内容不可见,可以点击是非继承属性:同display: none修改元素会造成重绘,性能消耗较少

网络

HTTPS

定义

HTTPS 是在 HTTP 上建立SSL加密层,并对传输数据做加密处理,是 HTTP 协议的安全版。

image.png

在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。也就是说HTTP加上加密处理和认证以及完整性保护后即是HTTPS

image.png

HTTPS 协议的主要功能基本都依赖于 TLS/SSL 协议,TLS/SSL 的功能实现主要依赖于三类基本算法:散列函数 、对称加密和非对称加密,其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性

image.png

HTTPS

浏览器端的显示形式

浏览器访问 HTTPS 通信有效的网站时,浏览器的地址栏内会出现一个带锁(🔒)的标记。对 HTTPS 的显示方式会因浏览器的不同而有所改变。

image.png