小零识(2)

113 阅读3分钟

这是我参与2022首次更文挑战的第12天,活动详情查看:2022首次更文挑战

target与currentTarget

target指向引发事件触发的元素;currentTarget指向绑定监听事件的元素

Set去重

  • Set去重时认为NaN与NaN相等,会过滤。
  • +0 和 -0相等,会过滤。
  • 两个对象永远不会相等,不会过滤。

总体来看,Set去重的表现类似于全等运算符===,但是NaN除外。

Object.is与全等号(===)不同点

  • Object.is将两个NaN视为相等,而全等则认为不相等。

  • Object.is认为+0和-0不相等,而全等则认为相等。

image.png

文件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>

执行结果如下:

image.png

结论

p:nth-child(2)表示这个元素是p标签,且这个元素是第二个子元素。如果section父元素的第二个子元素不是p标签则不匹配任何元素。

p:nth-of(type)表示这个元素是p标签,且这个元素是父元素下所有p标签中的第二个p标签。所以如果在div元素下插入n多个非p标签,匹配到的仍然是section元素下的第二个p标签。

如果去掉div元素,则两个选择器匹配到的都是第二个p标签元素。