腾讯一面:
css
-
垂直水平居中
-
响应式布局
-
移动端适配
-
pc、h5一套代码合两套代码的优劣
-
浏览器兼容写法
js
-
跨域
-
[] == 0
计算机网络
-
浏览器缓存原理(200和304)
-
xss
-
csrf
-
防攻击的解决方案
Vue
-
vue-ssr的原理
-
如何防止首屏白屏
-
vue如何防止xss
git
-
如何开发的
-
如何把多个项目公共部分 放到 其他项目中
node
- 中间件原理
项目
-
项目中遇到的问题,怎么解决的
-
如何在app内嵌h5监听bug,如何快速定位bug
腾讯一面:
css
-
垂直水平居中
这个我回答的四个:
- absolute + 负margin
- absolute 四边为0 + margin auto
- absolute + transform
- flex;justify-content: center; align-items: center;
- grid
-
响应式布局
-
移动端适配
<meta name="viewport" content="initial-scale=1,maximum-scale=1, minimum-scale=1">使用相对单位,rem、width、vh、vw、em,说出rem的原理,就是那个 document.documentElement.style.fontSize = document.documentElement.clientWidth / 7.5 + 'px'; -
pc、h5一套代码和两套代码的优劣 1、一套代码需要用req.headers['user-agent'].toLowerCase()判断是否在移动端设备。根据不同设备写不同代码。整体代码比较臃肿。 2、如果是两套代码,各自不影响,但是增加开发成本。
-
浏览器兼容写法 加上浏览器内核前缀。
js
-
跨域 我主要回答了JSONP,cors,node中间件,nginx反向代理。
-
[] == 0 这个我回答是true,但是理由是Number([]) = 0,然后 0 == 0;其实不是,针对 x == y 的隐式转换,如果x 是 Object,则需要ToPrimitive(x),即先用x.valueOf(),得到[],结果还是Object,然后再用x.toString(),得到'', 是String类型,然后直接对比 '' == 0,就为true了。 详情参考
计算机网络
-
浏览器缓存原理(200和304)
-
xss
-
csrf
-
防攻击的解决方案
Vue
-
vue-ssr的原理 更好的SEO、更快的内容到达时间。
-
如何防止首屏白屏 影响白屏时间的因素:网络,服务端性能,前端页面结构设计。主要就是解决性能优化。 解决方案:路由懒加载、首屏采用服务端渲染、UI框架按需加载、减少HTTP请求、预解析DNS、CDN分发、HTTP协议缓存请求、事件委托、预加载、JS/CSS优化、图片优化等
-
vue内部如何防止xss
<p v-html="$xss(test)"></p> import xss from 'xss' export default { data () { return { test: `<a onclick='alert("xss攻击")'>链接</a>` } } Object.defineProperty(Vue.prototype, '$xss', { value: xss }) // click事件被过滤 复制代码
git
-
如何开发的
-
如何把多个项目公共部分 放到 其他项目中
node
- 中间件原理
项目
-
项目中遇到的问题,怎么解决的
-
如何在app内嵌h5监听bug,如何快速定位bug
来源:oschina
链接:https://my.oschina.net/u/4308002/blog/4257082