开发习惯纠正(一)

231 阅读2分钟

前言:

我对与“IDEA十分强大”的理解只停留在“有丰富的插件”、“有强大的自动生成”、“有智能的代码生成”,而一直忽略了IDEA对编码风格的约束,这也导致了我自从将开发工具换成IDEA至今,写的代码的右边栏还有无数个黄色警告小方块,这无疑是积累已久的开发陋习,于是试图将这些警告逐一排查,顺便对自己的知识体系查缺补漏。


1.HTML标签缺少lang属性

这个属性其实并不常用,用于标识本页面使用的的语言,浏览器也可通过该属性判断当前页面是否需要弹出翻译提示,可以给出的属性值有

英文:en

但中文写法就较为复杂了:


 中文 (简体, 中国大陆) 对应 cmn-Hans-CN 普通话 (简体, 中国大陆) 

zh-SG 中文 (简体, 新加坡) 对应 cmn-Hans-SG 普通话 (简体, 新加坡) 

zh-HK 中文 (繁体, 香港) 对应 yue-Hant-HK 粤语 (繁体, 香港) 

zh-MO 中文 (繁体, 澳门) 对应 yue-Hant-MO 粤语 (繁体, 澳门) 

zh-TW 中文 (繁体, 台湾) 对应 cmn-Hant-TW 普通话 (繁体, 台湾)

以上两种写法均正确,后者描述更精准,但大部分程序和操作系统都只能识别前者,使用新标准可能会造成无法匹配浏览器用户定义字体、网页翻译、程序语言自动切换等功能,为了兼容性的考量,推荐使用前者:

该部分内容参考知乎-子野,原文链接:https://www.zhihu.com/question/20797118/answer/63480740

2.head标签中引入div标签


这里只是单纯的引用了服用模块的fragment,但不应该用div承载改为<meta>就可

3.js中做if判断时采用 ==


两者的区别

双等号==:

  (1)如果两个值类型相同,再进行三个等号(===)的比较

  (2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:

    1)如果一个是null,一个是undefined,那么相等

    2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较

三等号===:

  (1)如果类型不同,就一定不相等

  (2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN( ) 来判断)

  (3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。

  (4)如果两个值都是true,或是false,那么相等

  (5)如果两个值都引用同一个对象或是函数,那么相等,否则不相等

  (6)如果两个值都是null,或是undefined,那么相等