My Little World

一些问题小结

响应式两种方案

前后端通过判断userAgent来跳转不同站点

使用media query媒体查询让页面根据不同设备自动改变页面布局和显示

移动端端适配方案

zoom
vm/vh
rem (font-size Media Query)
flex
viewport(scale=1/dpr)
链接

1
2
3
4
5
6
7
屏幕尺寸、屏幕分辨率-->对角线分辨率/屏幕尺寸-->屏幕像素密度PPI
|
设备像素比dpr = 物理像素 / 设备独立像素dip(dp)
|
viewport: scale
|
CSS像素px

实现动画的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

  1. 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)\小程序