1 httponly能禁止js获取cookie,但是浏览器本身会把cookie添加到请求头的特性,导致xss中加个ajax请求,后端还是可以拿到cookie。
2 cookie太大会占用网络,应该只有需要发送到服务端的数据(如用户id)存cookie,其它存localstorage;cookie不设置过期时间,则保存在内存中,浏览器关闭,cookie消失。
3 session存内存,文件还是数据库主要看情况。
4 domain 是由服务端设置的,这个 domain 和当前浏览器的 url 是没有关系的,是指代请求地址的域名,例如https://api.com/update 这个接口可以设置 Cookie 在 api.com 这个 domain 下面。但是并不妨碍你在你的 https://web.com 网站里面使用这个接口,使用的时候,因为你这个接口仍然是发给 api.com 的,所以当然要把 api.com 下的 Cookie 带上。这就是csrf攻击的原理
5 cookie的samesite属性可以防止csrf攻击;referer也可以防止此攻击。
6 对象删除某个属性可以使用扩展运算符(...)
7 js引擎运行原理:解释器优点是立即执行,缺点是代码未被优化,较慢;编译器优点是优化代码使得执行更快,缺点是需要等待编译完成。v8引擎结合两者的优点,一边通过编译器优化和编译代码,一边通过解释器执行,编译器编译完成则会使用优化的代码替代解释器里的代码继续执行。如下:
function add(){return 1+1} while(i<1000){add()};优化代码后是把1+1 变为2
8 instanceof 原理是右边的prototype属性在左边的原型链上即为true