腾讯大厂面试题

大憨熊 提交于 2020-11-23 08:59:44

腾讯一面:

css

  • 垂直水平居中

  • 响应式布局

  • 移动端适配

  • pc、h5一套代码合两套代码的优劣

  • 浏览器兼容写法

js

  • 跨域

  • [] == 0

计算机网络

  • 浏览器缓存原理(200和304)

  • xss

  • csrf

  • 防攻击的解决方案

Vue

  • vue-ssr的原理

  • 如何防止首屏白屏

  • vue如何防止xss

git

  • 如何开发的

  • 如何把多个项目公共部分 放到 其他项目中

node

  • 中间件原理

项目

  • 项目中遇到的问题,怎么解决的

  • 如何在app内嵌h5监听bug,如何快速定位bug

腾讯一面:

css

  • 垂直水平居中

    这个我回答的四个:

    1. absolute + 负margin
    2. absolute 四边为0 + margin auto
    3. absolute + transform
    4. flex;justify-content: center; align-items: center;
    5. 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!