• 移动端代码规范小结(一)


    1、js中use strict的作用域范围只在当前脚本有效:比如1.js里面调用2.js的方法,1.js里面声明"use strict",而2.js里面没有声明,则该调用为正常模式调用,并非严格模式;

    2、location.replace与location.href的区别在于:location.replace方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”

    来访问已经被替换的URL;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-*上面的。会在html里面体现。获取以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外面的声明是一样的,因为变量声明会被提前到当前作用域的最前面;

  • 相关阅读:
    NABCD项目分析
    周总结6
    移动端展示
    暑期周进度报告(四)
    暑期周进度报告(三)
    暑期周进度报告(二)
    暑期周进度报告(一)
    《人件》阅读笔记02
    周学习进度报告(2020/06/05)
    2020春季软件工程课程总结
  • 原文地址:https://www.cnblogs.com/wqhwe/p/5216418.html
Copyright © 2020-2023  润新知