掘友等级
获得徽章 0
什么时候行情好点
#每日一题# async与defer区别
默认情况下浏览器同步加载js脚本。就是说遇到<script>后会立即加载并执行,并中断dom的渲染。
而这两个属性会让浏览器异步加载js脚本。不同的是,async下载完后中断dom渲染并执行。defer等所有dom渲染完后再执行。
#每日一题# 手写instanceof
function myInstanceof(left,right) {
let baseType = ['string','number','boolean','symbol','undefined']
if(baseType.includes(typeof(left))) return false;
let left_proto = Object.getPrototypeOf(left);
while(true){
if(!left_proto) return false;
if(left_proto === right.prototype) return true;
left_proto = Object.getPrototypeOf(left_proto);
}
}
#每日一题# http中的keep-alive什么作用
早期HTTP1.0的协议,其特点就是传输完数据后,立马就释放掉该TCP链接,也就是短连接。
HTTP1.1后使用keep-alive是链接持续有效(长链接)。好处是避免了短连接的每次连接的三次握手和四次挥手的网络交互。缺点是本来可以释放的资源仍旧被占用,可设置keep-alive时间来解决
#每日一题# 状态码304多好还是少好
304是浏览器缓存的一种,服务器判断客户端页面与之前相同,此时客户端直接取缓存内容。
好处:节省流量、提高蜘蛛爬行效率。
缺点:权重下降
#每日一题# js数组去重方法
1.indexOf去重,返回新数组
2.利用set特性
3.map或Object(key值唯一性)
#每日一题# JS 中的垃圾回收算法
标记清除、计数引用。
标记清除:把所有活动对象做上标记,没有标记的对象进行回收
计数引用:记录每个对象的引用次数,将引用次数为0的进行回收
#每日一题# 浏览器缓存机制
浏览器缓存有两种,强缓存和协商缓存;
强缓存不会向服务器发送请求,直接从缓存中读取资源。协商缓存是浏览器携带缓存标识向服务器发送请求,由服务器据标识来决定是否使用缓存。
强缓存相关字段有 expires,cache-control;协商缓存相关字段有Last-Modified/If-Modified-Since,Etag/If-None-Match
下一页