滴滴前端实习一面
- Vue3和Vue2的区别,vue3如何实现数据绑定的
- 性能更强,打包体积更小
- 更支持TS
- 生命周期函数改变,使用setup代替了之前的beforeCreated和created
- 使用proxy代替defineProperty
- vue3如何实现数据绑定的
- 对目标对象多设置一层拦截。无论对目标对象进行什么操作,都要经过这层拦截
- Proxy拦截的是整个对象,所以可以监听到一些数组或者对象属性的增删
- 事件循环
- XSS\CSRF攻击
- XSS 跨站脚本攻击,主要指向网页中注入恶意代码,然后用户加载执行来完成攻击
- CSRF 跨站为在哦请求攻击,指在用户不知情的情况下利用用户权限,构造特定HTTP请求,窃取或者修改用户信息 解决方法:token机制、区分get、post请求、samesite cookie(只有同源请求才能发送cookie)
- 跨域JSONP解决方案
JSONP:主要是利用浏览器加载script会不受同源机制限制二解决跨域问题的
过程:1. 注册一个函数 2. 构造一个请求URL 3. 生成一个script标签并把生成的URL加载src中 4. 服务端构造一个js函数调用表达式并返回
6. http2.0
7. http状态码 304
- 以3XX开头的状态码表示需要进行附加操作才完成请求
- 304是客户端发送请求条件请求时,服务器允许访问资源,但未满足条件的情况,比如命中强缓存或者协商缓存这些
- 第一次访问返回200并缓存资源文件
- 下一次访问,强缓存优先级高,首先比较cache-control中的max-age是否过期,没有就命中强缓存
- 协商缓存首先根据Etag判断资源有无修改,Etag一致则命中协商缓存,否则返回新的资源和Etag
- 没有Etag,比较Last-Modified和被请求文件最后修改时间,一致则命中协商缓存,否则返回新的资源和Last-Modified
JavaScript中每个实例对象都有一个私有属性指向它的构造函数的原型对象。该原型对象也是对象,所以他也有一个自己的原型对象,层层向上直到一个对象的原型对象是null
10. prototype和__proto__区别
- 每个对象都有__proto__属性
- 每个构造函数都有一个名为prototype的方法,既然是方法,那么就是一个对象,所以prototype同样带有__proto__属性
- 每个对象的__proto__指向它构造函数的prototype
12. 数据转换为树型
#前端##面试题目##滴滴#