tips - TokenYangForever/NewProject GitHub Wiki
-
1.IOS微信中的new Date()不能兼容 xxxx-xx-xx格式 以及 xx/xx无年份的格式。
-
2.使用mediaquery写css样式兼容不同屏幕大小的手机。
-
3.:first-child与:first-of-type的区别
:first-child匹配第一个子元素,:first-of-type匹配第一个符合type类型的子元素。
-
4.setTimeout(fn,n) n毫秒后将事件加入队列中
-
5.js文件加载阻塞dom问题(js文件引用一般放在底部) async:使用async属性表示当前脚本不必等待其他脚本,也不必阻塞文档呈现,不能保证按照它们在页面中出现的顺序执行(异步脚本) defer:使用defer属性可以让脚本在文档完全呈现之后再执行,延迟脚本总是按照它们的顺序执行(延迟脚本)
-
6.使用节流函数进行性能优化 如果直接将函数绑定在scroll事件上,当页面滚动时,函数会被高频触发,这非常影响浏览器的性能。
-
7.requestAnimationFrame 是专门为实现高性能的帧动画而设计的一个API setInterval、setTimeout是开发者主动要求浏览器去绘制,但是由于种种问题,浏览器可能会漏掉部分命令 requestAnimationFrame 就是浏览器什么要开始绘制了浏览器自己知道,通过requestAnimationFrame 告诉开发者,这样就不会出现重复绘制丢失的问题了
-
8.localStorage/sessionStorage的区别只在于时效,sessionStorage关闭浏览器后消失
-
9.Javascript模块化规范:CommonJS、AMD、CMD。ES6模块化(import关键字)
-
10.为了防止误操作,移动端iOS操作系统针对原生click事件做了300ms的延迟,这在一定程度上影响了我们的使用体验。 1)使用zepto的tap事件(会产生点击穿透的bug)2)使用FastClick插件解决
-
11.Array.prototype.slice.call(arguments)//将类数组对象转化为数组
-
12.百度统计 添加到页面跳转时无效 还是百度统计 项目上新建一个页面时候,要注册配置页面Id,添加统计代码
-
13.location.reload()在安卓微信上无效 会读取缓存,window.location.href = window.location.href+"×tamp="+new Date().getTime()
-
14.Vue vue 需要在完成渲染数据后,立即执行的代码要放在Vue.nextTick里
-
15.如果你在你的应用程序中使用JSON.parse,建议你一定要进行错误处理。未处理的JSON.parse错误就像一个定时炸弹。不要假设你接收到的JSON对象是完全有效的。
-
16.使用delegate() 方法为未来元素添加处理程序,on和bind就不行
-
17.style scoped 使样式只作用于当前模块;模块化的文件最后一行加换行符
-
18.RegExp 每当产生一个带括号的成功匹配时,$1...$9 属性的值就被修改。可以在一个正则表达式模式中指定任意多个带括号的子匹配,但只能存储最新的九个。
-
19.MutationObserver 监听DOM树变化
var observer = new MutationObserver(nextTickHandler); observer.observe(Domnode,option)
-
20.使用v-for的时候,一定要注明唯一的key键值.父组件动态绑定数据给子组件时,一定要确保数据已经get到了,再mouted子组件
-
21.用foreach无法跳出循环