常见业务编程题总结

Table of Contents

常见业务编程题总结


0. 前言

写前端小demo的最好用的工具是codepen, 上面也有一些问题的解决方案,我把下面题目的答案都放在codepen上面,有部分题目的代码会放在leetcode上面


jsonp

原生jsonp

jQuery中的jsonp


闭包

  • 简单说一个闭包的应用,然后闭包的主要作用是什么
  • 写个从几个li中取下标的闭包代码

前端布局

两列布局

  • 左边固定宽度为200,右边自适应,而且滚动条要自动选择只出现最高的那个
  • 做一个两栏布局,左边fixed width,右边responsive,用纸笔手写
  • 左边定宽右边自适应
  • 实现布局:左边一张图片,右边一段文字(不是环绕)

    三列布局

  • 使用flex布局实现三等分,左右两个元素分别贴到左边和右边,垂直居中

    其他

  • 浮动的原理以及如何清除浮动

  • 绝对定位与相对定位的区别

  • 如何让各种情况下的div居中(绝对定位的div,垂直居中,水平居中)

  • 清除浮动有哪几种方式,分别说说


jQuery

手写一个jQuery插件

手写实现jquery里面的insertAfter

在jquery方法和原型上面添加方法的区别和实现,以及jquery对象的实现

jquery绑定click的方法


画图和动画

css实现一个三角形

用canvas绘制一个有限度的斐波那契数列的曲线

css动画demo

Animation还有哪些其他属性

  • 为什么要用translate3d
  • 使用js画一个抛物线,抛物线上有个小球随着抛物线运动,有两个按钮能使小球继续运动停止运动
  • CSS动画:animation、transition、transform、translate傻傻分不清参考链接

ajax

原生js实现ajax

用promise手写ajax


js深拷贝


js异步

  • for函数里面setTimeout异步问题
  • 写一个递归。就是每隔5秒调用一个自身,一共100次
  • setTimeout和setInterval区别,如何互相实现

    promise

  • 手写实现一个promise

  • promise的三种状态,ES7中的async用过么

  • 如何避免多重回调—promise,promise简单描述一下,如何在外部进行resolve()


实现原理

Array.prototype.sort实现原理

手写实现requireJS模块实现


读取

元素js读取cookie


监听数据变化

脏检查


margin问题

塌陷

合并

  • 两个块状元素上下的margin-top和margin-bottom会重叠。啥原因?怎么解决?
  • margin坍塌?水平方向会不会坍塌?

事件流

  • 事件代理js实现

图形设计

  • 保持长宽比1:1
  • 实现两个自适应等宽元素中间空10个像素
  • 怎么在页面里放置一个很简单的图标,不能用img和background-img

样式设计

  • 原生js添加class怎么添加,如果本身已经有class了,会不会覆盖,怎么保留?
  • display有哪些值?说明他们的作用
  • css定义的权重

Vue

双向绑定原理

MVVM

  • vue如何实现父子组件通信,以及非父子组件通信

选择器

  • 怎么得到一个页面的a标签
  • 伪类和伪元素区别

局部刷新

  • 实现页面的局部刷新

前端功能

  • js轮播实现思路
  • 五子棋
  • 用原生js实现复选框选择以及全选非全选功能
  • 嵌套的ul-li结构,根据input中输入的内容,去除相应的li节点,且如果某个嵌套的ul下面的li都被移除,则该ul的父li节点也要被移除

表单提交

  • form表单当前页面无刷新提交 target iframe

作用域

  • 实现bind函数