常见状态码
【403】表示【服务器拒绝执行客户端的请求】
【404】表示【服务器找不到客户端所请求的资源(网页)】
【304】表示【所请求的资源并未修改(命中协商缓存)
缓存过期后向服务器发起请求验证缓存是否有效,有效的话则返回304。304多出现在对于静态资源的请求上面。对于静态资源来说:
当浏览器第一次发起请求时(请求头中没有If-Modified-Since),server会在响应中告诉浏览器这个资源最后修改的时间(响应头中的Last-Modified)。当你再次请求这个资源时,浏览器会询问server这个资源有没有被修改(请求头中If-Modified-Since)。
如果资源没有被修改,server返回304状态码,浏览器使用本地的缓存文件。
join(separator):将数组的元素组起一个字符串,以separator为分隔符,省略的话则用默认用逗号为分隔符
push():将参数添加到原数组末尾,并返回数组的长度(修改原数组)
pop():删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined(修改原数组)
shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined
unshift(): 将参数添加到原数组开头,并返回数组的长度(修改原数组)
slice(start,end):可以截取出数组某部份的元素为一个新的数组,有两个必填的参数,第一个是起始位置,第二个是结束位置( 操作时数字减1 ) 原数组不改变
splice(start,deleteCount,val1,val2,…):从start位置开始删除deleteCount项,并从该位置起插入。(修改原数组)
fill():使用特定值填充数组中的一个或多个元素(修改原数组)
filter():过滤,数组中的每一项运行给定函数,返回满足过滤条件组成的数组
concat():可以将两个数组合并在一起,如果是使用ES6语法也可以用扩展运算符…来代替
indexOf():返回当前值在数组中第一次出现位置的索引
lastIndexOf():返回查找的字符串最后出现的位置,如果没有找到匹配字符串则返回 -1。
every():判断数组中每一项是否都符合条件
some():判断数组中是否存在满足的项
includes():判断一个数组是否包含指定的值
sort(orderfunction):按指定的参数对数组进行排序(修改原数组)
reverse():将数组反序(修改原数组)
forEach():循环遍历数组每一项(没有返回值)
map():循环遍历数组的每一项(有返回值)
copyWithin(): 从数组的指定位置拷贝元素到数组的另一个指定位置中(修改原数组)
find(): 返回第一个匹配的值,并停止查找
findIndex(): 返回第一个匹配值的索引,并停止查找
toLocaleString()、toString():将数组转换为字符串
flat()、flatMap():扁平化数组
entries() 、keys() 、values():遍历数组
选择器
id选择器(#myid)
类选择器(.myclass)
属性选择器(a[rel="external"])
伪类选择器(a:hover, li:nth-child)
标签选择器(div, h1,p)
相邻选择器(h1 + p)
子选择器(ul > li)
后代选择器(li a)
通配符选择器(*)
优先级:
!important
内联样式(1000)
ID选择器(0100)
类选择器/属性选择器/伪类选择器(0010)
元素选择器/伪元素选择器(0001)
关系选择器/通配符选择器(0000)
带!important 标记的样式属性优先级最高; 样式表的来源相同时: !important > 行内样式>ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性
浏览器缓存的特点:
根据是否需要向服务器重新发起HTTP请求将缓存过程分为两个部分,分别是强制缓存和协商缓存。
协商缓存
协商缓存生效,返回304
协商缓存失效,返回200和请求结果结果
1.== 和 === 区别
== 表示相等 (值相等)
===表示恒等(类型和值都要相等)
js在比较的时候如果是 == 会先做类型转换,再判断值得大小,如果是===类型和值必须都相等。
2.== === 和 Object.is() 区别
== 相等,如果两边类型不一致,进行隐式转换后,再比较。+0 和 -0 相等, NaN 不等于任何数
=== 严格相等,如果类型不一致,就不相等。 +0 和 -0 相等, NaN 不等于任何数
Object.is() 严格相等,+0 和 -0 不相等, NaN 等于自身
放在 header 中
你能看到 html 第一时间被加载进来,但页面 body 内容迟迟没有渲染出来。因为在等待 header 标签中 script 脚本的加载,3 秒后,整个页面渲染完成。
放在 body 底部
这次 html 内容第一时间渲染完成,随后等待 js 的加载。
总结:
脚本会阻塞页面的渲染,所以推荐将其放在 body 底部,因为当解析到 script 标签时,通常页面的大部分内容都已经渲染完成,让用户马上能看到一个非空白页面。
另外你能看到多个脚本之间都是异步向服务器请求,他们之间不互相依赖,最终只等待 3 秒,而非 3+3+3 秒。
阅读量:2262
点赞量:1
收藏量:2