响应式两种方案
前后端通过判断userAgent来跳转不同站点
使用media query媒体查询让页面根据不同设备自动改变页面布局和显示
移动端端适配方案
zoom
vm/vh
rem (font-size Media Query)
flex
viewport(scale=1/dpr)
链接
1 | 屏幕尺寸、屏幕分辨率-->对角线分辨率/屏幕尺寸-->屏幕像素密度PPI |
实现动画的6种方式
纯JS(利用setInterval,16ms)
SVG (利用标签进行配置)
canvas(利用js API进行配置)
css3-transition(属于过度动画,不能独立实现动画)
css3-animation(纯css实现动画)
requestAnimationFrame(类似setInteval,但性能消耗低)
前两种兼容性良好
后四种适合移动端开发
处理浏览器css样式兼容
reset:清除浏览器默认样式,针对具体元素标签重写样式通过清除保持一致
normalize:样式规范确定的情况下,直接重写样式,通过使用默认统一保持一致
neat:前两者结合针对确定的样式直接重写,不确定的清除
css 样式权重
!important
内联(1000)
id(100)
类(10)
元素(1)
根据浏览器设备屏幕宽度和分辨率加载不同大小的图片
使用Media Query 判断加载不同背景图
使用H5的Picture标签
使用模板语言进行判断,渲染不同图片
请求时带上相关参数,让服务器吐出不同大小图片
JS 可能出现内存泄露的常见场景
闭包函数
全局变量
对象属性循环引用
DOM结点删除时未解绑事件
Map和Set的属性直接删除
其他
1.
数据类型在内存中分布
常量池:boolean,number,string
栈:undefined
堆:object
函数定义区:function(其实在堆里面)
=== 比较变量地址;==会通过V8进行隐式转换
2.
把Object 看作普通类,Object 是Function的实例
Object.proto === Function.prototype
把Object 看作构造函数,functionxxx 是 Object的派生
functionxxx.proto === Function.prototype
Function.prototype.proto === Object.prototype
Object.proto.proto === Object.prototype
- CommonJs AMD CMD NodeModules
4.LESS/SASS存在价值,有什么作用
编程式CSS,可维护性,可扩展性,静态样式一定程度上可以实现动态化
5.
前端基础:HTML/CSS/ECMAScript jQuery/bootStrap
新前端:React/VUE/Angular CommonJS/AMD/CMD/NodeModule
工具:npm/bowser 预编译(LESS\SASS\Babel)构建工具(webpack\gulp\grunt)
应用端服务器:Node Web应用\http协议\RPC\发布部署\微服务
跨平台开发:PC(window,mac)前端(web+h5)移动端(andorid,ios)(flutter\react-native)\小程序