常见业务编程题总结
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函数