这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战
target与currentTarget
target指向引发事件触发的元素;currentTarget指向绑定监听事件的元素
Set去重
- Set去重时认为NaN与NaN相等,会过滤。
- +0 和 -0相等,会过滤。
- 两个对象永远不会相等,不会过滤。
总体来看,Set去重的表现类似于全等运算符===,但是NaN除外。
Object.is与全等号(===)不同点
-
Object.is将两个NaN视为相等,而全等则认为不相等。
-
Object.is认为+0和-0不相等,而全等则认为相等。
文件time
mtime
modified time. 指文件内容改变的时间戳。last-modified值一般是选用这个来表示文件内容的修改时间。
ctime
change time. 指文件属性改变的时间,包括mtime。
atime
access time. 文件中的数据库最后被访问的时间。
from memory cache与from disk cache
两者都属于强缓存。浏览器根据强缓存头判断是否过期。如果未过期,则先从内存查找;如果内存中有,则从内存中加载;内存中不存在则从硬盘获取;如果硬盘也不存在则进行网络请求,将加载到的资源缓存到内存和硬盘中。
from memory cache: 从内存中读取加载过得资源,不请求服务器,页面关闭后资源从内存释放。在同一个页面刷新才会出现。
from disk cache: 从磁盘中读取加载过得资源,不请求服务器,页面关闭也不会释放。这部分资源在电脑磁盘里,只有用户手动清除浏览器资源才会释放。
几乎所有的网络请求都会被浏览器自动加入memory cache.一般情况下,浏览器tab关闭,该浏览器的memory cache失效。虽然memory cache是无视http头的,但是no-store除外。
隐私模式下,资源几乎都是from memory cache。
打开新标签为from disk cache,刷新当前页的派生资源是from memory cache。
nth-child(n)与nth-of-type(n)
注: n的起始值必须为1
通俗的理解:
-
E:nth-child(n)匹配父元素下第n个子元素是E元素的元素。
-
E:nth-of-type(n)匹配父元素下第n个E元素,但这个元素不一定是父元素的第n个元素。
总体来看一个例子:
<section>
<div>我是section的第一个子元素标签div</div>
<p>我是section的第二个子元素,也是第一个p标签</p>
<p>我是section的第三个子元素,也是第二个p标签</p>
</section>
<style>
p:nth-child(2) {
color: red;
}
p:nth-of-type(2) {
color: yellow;
}
</style>
执行结果如下:
结论:
p:nth-child(2)表示这个元素是p标签,且这个元素是第二个子元素。如果section父元素的第二个子元素不是p标签则不匹配任何元素。
p:nth-of(type)表示这个元素是p标签,且这个元素是父元素下所有p标签中的第二个p标签。所以如果在div元素下插入n多个非p标签,匹配到的仍然是section元素下的第二个p标签。
如果去掉div元素,则两个选择器匹配到的都是第二个p标签元素。