移动端代码规范小结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动端代码规范小结相关的知识,希望对你有一定的参考价值。
1、js中use strict的作用域范围只在当前脚本有效:比如1.js里面调用2.js的方法,1.js里面声明"use strict",而2.js里面没有声明,则该调用为正常模式调用,并非严格模式;
2、location.replace与location.href的区别在于不会破坏之前的页面回退功能;
3、由于浏览器对于跨域的限制,js不能本地保存跨域的图片(拿不到图片的base64);
4、设置和获取disable, checked, selected等属性时,请使用推荐的prop方法来替代attr方法(备注:有些浏览器上通过attr(“checked”, “checked”)无效);
5、对于each函数,return true同等于continue, return false同等于break;
6、对于页面的命名里不应该包含大写字母,eg. isNotAllowed.html(备注:有些浏览器不能识别大写字母);
7、data方法在jQuery里面和zepto里面实现形式是不一样。
jQuery里面的data方法存储的数据是jQuery自己保存的。jQ也会获取一次data-*的数据,但获取之后后续的处理全在jQ的对象里面了,不会在HTML体现。
zepto里面data方法存储的数据会同时写到元素自身的data-*上面的。获取以data-*开头的属性值时,请使用$(...).data(*)函数。
原生JS获取的时候是属性名是去掉data-,然后变成小驼峰形式,即前面的值应该用dom.dataset.someValue来获取。反过来也一样,即通过dom.dataset.someName设置
的值,在HTML上会表示成data-some-name="xx"
另外,data-*的命名规则按照规范,应该是全小写,词语间划分使用"-",比如data-some-value=""。
8、 在for…in…循环内,最好用hasOwnProperty函数来判断属性是否为真正属性,以免处理了无效值;
9、假如某个dom节点同个函数中被多次反复使用,可以手动把此值缓存,避免多次查找dom树。例如var a = $(body);
10、在使用Date对象生成实例的时候,要注意使用标准写法,不然某些浏览器会报错。 不要习惯使用 new Date("YYYY-MM-DD HH:mm:SS"),因为这个格式并不是标准的格式,
但是当前webkit是支持的。长个心眼,如果以后遇到其他浏览器报错或者是webkit放弃了这个支持的时候,方便查找原因;
11、由于JS没有块级作用域,因此如果在if块和else块里面都用到var i作为计数器,则可能报重复定义的错误;
12、关于变量声明,Var a=b=0;相当于 var a; a= b; b = 0;b变成了全局变量;
13、for(var key in str) 中变量key在for里面的声明和在for外面的声明是一样的,因为变量声明会被提前到当前作用域的最前面;
以上是关于移动端代码规范小结的主要内容,如果未能解决你的问题,请参考以下文章