个人积累的部分前端面试题

205 阅读2分钟

更新动态:写给初级前端的面试经验

# 部分面试题

## CSS

  • 怎么实现三列布局(左右固定,中间自适应)
    • 绝对定位 + 中间版块不给宽度
    • 两侧浮动 + 中间自动撑开
    • flex , 左右设置 flex-basis , 中间设置 flex-grow
  • flex 具体是怎么实现三列布局(左右两侧的宽度是怎么设置的,中间自适应使用哪个属性)
  • 设为 flex 属性后,子元素的哪些属性会失效
    • float
    • clear
    • vertical-align
  • float / 绝对定位 怎么实现中间宽度自适应
  • 移动端开发 rem 布局的原理( rem 单位换算)
  • 有没有自己写过组件
  • 怎么实现样式的继承和复用
  • 平时怎么管理自己的 CSS
    • base.css
    • common.css
    • page.css
    • 以上对应都存放哪些内容
  • 平时使用 sass/lass/styles 的哪些功能,sass 的计算属性对页面性能有影响吗?
  • 如何在页面上画一个圆
    • SVG
    • Canvas
    • CSS border-radius
    • background
    • map + area
    • img
  • 如何在页面上用CSS画一个椭圆
    .sector {
      width: 0;
      height: 0;
      border-width: 50px;
      border-style: solid;
      border-color: #f00 transparent transparent;
      border-radius: 50px;
    }
    
  • 如果圆边界模糊,有什么办法去锯齿

## JS

  • JS 数据类型
    • null undefined string number boolean object Symbol(es6新增)
  • 基本数据类型和引用数据类型的区别
    • 基本数据类型存放在栈中,引用数据类型存放在堆中
    • 基本数据类型由系统自动释放内存,堆不会自动释放内存
    • 赋值上,基本数据类型传值,引用数据类型传址
  • 深/浅拷贝的区别
  • 怎么实现浅拷贝
    • ES6: object.assign()
    • ES6: 展开运算符...
    • 自己封装函数实现
  • 怎么实现一个深拷贝
    • ES6: JSON.parse() (内部有 function 和 undefined 不可用)
    • lodash
    • 自己封装
  • null 和 undefined 的差异
    • if 判断时,都隐式转为 false
    • 大体上两者都是代表无
    • null 转为数字为 0 ,undefined 转为数字为 NaN
    • 变量定义,但未被赋值是,值为 undefined
    • null 是一个特殊的对象,常见用法是作为参数传入
    • 设置 null 的变量或对象将被内存收集器回收
  • 实现给数字添加千分位符
    • 正则: "12345678".replace(/(\d)(?=(?:\d{3})+$)/g,'$1,')
    • 字符串分析,循环,然后每3位加一个分位符
    • 数据分析,取到整数部分,对1000取余,然后加逗号,拼接字符串
  • 面向对象的三大要素
    • 封闭
    • 继承
    • 多态
  • 能简单说明面向对象和面向过程的区别吗

更新点........

问题库

  • vue 的双向绑定原理
  • vue 的 nexttick 原理
  • diff 算法
  • promise 的底层是怎么运转的
  • 如何遍历一个树,并对其进行优化