【自己·八股文整理】(更像备考阶段)
果果o回忆吧
全部回复
仅看楼主
level 11
钟离小暖 楼主
不同于自己面试里的八股文,
2021年09月07日 06点09分 1
level 11
钟离小暖 楼主
严格运算符的运算规则如下,
(1)不同类型值
如果两个值的类型不同,直接返回false。
(2)同一类的原始类型值
同一类型的原始类型的值(数值、字符串、布尔值)比较时,值相同就返回true,值不同就返回false。
(3)同一类的复合类型值
两个复合类型(对象、数组、函数)的数据比较时,不是比较它们的值是否相等,而是比较它们是否指向同一个对象。
(4)undefined和null
undefined 和 null 与自身严格相等。
2021年09月07日 06点09分 2
level 11
钟离小暖 楼主
相等运算符
相等运算符隐藏的类型转换,会带来一些违反直觉的结果。
'' == '0' // false
0 == '' // true
0 == '0' // true
false == 'false' // false
false == '0' // true
' \t\r\n ' == 0 // true
这就是为什么建议尽量不要使用相等运算符。
至于使用相等运算符会不会对后续代码造成意外影响,答案是有可能会。
!是(逻辑非) 如果操作数能够转换为false就返回true
var a = undefined;
if(!a){ /// 里面的如果能被转换成false,就会继续操作
console.log("1"); //1
}
if(a == null){ // 走了undefined==null这个捷径
console.log("1"); //1
}
var a = undefined;
if(a === null){
console.log("1"); //无输出
}
也就是说当a为undefined时,输出的值会有变化,而在编程中对象变成undefined实在是太常见了。
2021年09月07日 06点09分 3
level 11
钟离小暖 楼主
1、csrf里不懂 cookie怎么共享?
localStorage一直存,同一浏览器同源共享【同源才共享,不同页面不共享】
sessionStorage 只有当前一个页面有效,新进去之后没了,一样的网址重新打开第二个(同源也共享不了)单页面应用中是共享
cookie 的同源策略和浏览器不同【一般往非同源里发,是不携带cookie的】不区分端口和https
阿巴,那个CSRF是让浏览器自己发出去吧,自己发请求的地址,有什么可跨域的。只要发出去就ok
2021年09月07日 06点09分 4
level 11
钟离小暖 楼主
2、cors具体说一下
浏览器的。。。浏览器的安全策略
图片、script可以跨域
(1)JSONP:利用的原理是script标签可以跨域请求资源,将回调函数作为参数拼接在url中
后端收到请求,调用该回调函数,并将数据作为参数返回去,注意设置响应头返回文档类型,应该设置成javascript
3. postmessage:
场景:一个页面中嵌入另一个iframe页面,
使用postmessage发送数据
window.addEventListener("message", function (event) {
console.log('这里是接收到来自父页面的消息,消息内容在event.data属性中', event)
}, false)
**Access-Control-Allow-Origin: * ** *号代表所有网站可以跨域资源共享,如果当前字段为*那么Access-Control-Allow-Credentials就不能为true
2021年09月07日 06点09分 5
3、arr.forEach(( item,index)=> 主域名()后面的端口号、协议。主域名只有一个。store.company那如果是oo22.company那子域名不一样也是一局跨域了就。
2021年09月07日 06点09分
level 11
钟离小暖 楼主
可以看这个https://www.nowcoder.com/discuss/723888 这个总结,总结的很全!
1、浏览器缓存部分
等待整理
(1)ETag 能解决什么问题?
a. Last-Modified 标注的最后修改只能精确到秒级,如果某些文件在 1 秒钟以内,被修改多次的话,它将不能准确标注文件的新鲜度;
b. 某些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),但 Last-Modified 却改变了,导致文件没法使用缓存;
c. 有可能存在服务器没有准确获取文件修改时间,或者与代理服务器时间不一致等情形。
(2)要知道HTML是一定不能缓存的(大部分网页)。 缓存设置时间应该在你版本稳定之后设置,否则会得不偿失。 另外设置Cache-Control还可以配合ETag或者Last-Modified进行补偿验证,如果后面文件变化也可以及时反映出来。
具体的可以做分级
2021年09月07日 06点09分 6
level 11
钟离小暖 楼主
2021年09月07日 06点09分 7
level 11
钟离小暖 楼主
1、css优先极 先这么记内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器
第一等:代表内联样式,如: style=””,权值为1000。
第二等:代表ID选择器,如:#content,权值为100。
第三等:代表类,伪类和属性选择器,如.content,权值为10。
第四等:代表类型选择器和伪元素选择器,如div p,权值为1。
!important的css定义是拥有最高的优先级的(慎用,慎用!!!)
2、四种绑定方式
call和apply是立即执行,bind则是返回一个绑定了this的新函数,只有你调用了这个新函数才真的调用了目标函数
bind函数存在多次绑定的问题,如果多次绑定this,则以第一次为准。
bind函数实际上是显示绑定(call、apply)的一个变种,称为硬绑定
2021年09月07日 06点09分 8
1