목차
通用规范:" >通用规范:
文件规范:" >文件规范:
html书写规范:" >html书写规范:
css书写规范:" >css书写规范:
 javaScript书写规范:" > javaScript书写规范:
图片规范:" >图片规范:
注释规范:" >注释规范:
开发及测试工具约定:" >开发及测试工具约定:
参考和借鉴了大家的经验,众人拾柴火焰高,技术无国界,持续更新中。" >参考和借鉴了大家的经验,众人拾柴火焰高,技术无国界,持续更新中。
웹 프론트엔드 JS 튜토리얼 웹 프론트엔드 개발 사양 요약

웹 프론트엔드 개발 사양 요약

Jul 19, 2017 pm 03:06 PM
web 문서 사양

通用规范:

TAB键用4个空格代替(WINDOWS下TAB键占四个空格,LINUX下TAB键占八个空格;一般用4个空格代替tab,vim,eclipse,np++等都可以设置)。

CSS样式属性或者JAVASCRIPT代码后加“;”方便压缩工具“断句”。

文件内容编码均统一为UTF-8

CSSJAVASCRIPT中的非注释类中文字符须转换成unicode编码使用,以避免编码错误时乱码显示。

这段代码演示了JavaScript中字符串与Unicode编码的转换:

// 为了控制台的演示方便, 变量没有添加 var 定义// 实际编程中请避免// 字符串str = "中文";// 获取字符char0 = str.charAt(0); // "中"// 数字编码值code = str.charCodeAt(0); // 20013// 编码互转str0 = String.fromCharCode(code); // "中"// 转为16进制数组code16 = code.toString(16); // "4e2d"// 变成字面量表示法ustr = "\\u"+code16; // "\u4e2d"// 包装为JSONjsonstr = '{"ustr": "'+ ustr +'"}'; //'{"ustr": "\u4e2d"}'// 使用JSON工具转换obj = JSON.parse(jsonstr); // Object {ustr: "中"}//ustr_n = obj.ustr; // "中"
로그인 후 복사

文件规范:

文件名用英文单词,多个单词用驼峰命名法。

一些浏览器会将含有这些词的作为广告拦截,文件命名、ID、CLASS等所有命名避免以上词汇。

<strong><span style="color: #ff9900">`ad`、`ads`、`adv`、`banner`、`sponsor`、`gg`、`guangg`、`guanggao` </span></strong>等

html书写规范:

为每个HTML页面的第一行添加标准模式(standard mode)的声明,确保在每个浏览器中拥有一致的展现。

DOCTYPE html>

文档类型声明统一为HTML5声明类型,编码统一为UTF-8。

<meta charset="UTF-8">

<HEAD>中添加信息。

<meta name="author" content="smile@kang.cool">//作者<meta name="description" content="hello">//网页描述<meta name="keywords" content="a,b,c">//关键字,“,”分隔<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT">//设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅<meta http-equiv="Pragma" content="no-cache">//禁止浏览器从本地机的缓存中调阅页面内容<meta http-equiv="Window-target" content="_top">//用来防止别人在框架里调用你的页面<meta http-equiv="Refresh" content="5;URL=">//跳转页面,5指时间停留5秒 网页搜索机器人向导。用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引<meta name="robots" content="none">//content的参数有all,none,index,noindex,follow,nofollow,默认是all<link rel="Shortcut Icon" href="favicon.ico">//收藏图标<meta http-equiv="Cache-Control" content="no-cache, must-revalidate">//网页不会被缓存
로그인 후 복사

IE支持通过特定标签来确定绘制当前页面所应该采用的IE版本。除非有强烈的特殊需求,否则最好是设置为edge mode ,从而通知IE采用其所支持的最新的模式。

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

非特殊情况下CSS样式文件外链至HEAD之间,JAVASCRIPT文件外链至页面底部。

<!DOCTYPE html><html><head><link rel="stylesheet" href="css/main.css?1.1.11"></head><body><!-- 逻辑代码 --> <!-- 逻辑代码底部 --><script src="lib/jquery/jquery-2.1.1.min.js?1.1.11"></script></body></html>
로그인 후 복사

引入JAVASCRIPT库文件,文件名须包含库名称及版本号及是否为压缩版。

<span class="hljs-selector-tag">jQuery-1<span class="hljs-selector-class">.8<span class="hljs-selector-class">.3<span class="hljs-selector-class">.min<span class="hljs-selector-class">.js</span></span></span></span></span>

引入JAVASCRIPT插件, 文件名格式为库名称+.+插件名称。

jQuery<span class="hljs-selector-class">.cookie<span class="hljs-selector-class">.js</span></span>

HTML属性应当按照以下给出的顺序依次排列,来确保代码的易读性。

<span class="hljs-class"><span class="hljs-keyword">class id 、 name data-* src、<span class="hljs-keyword">for、 <span class="hljs-class"><span class="hljs-keyword">type<span class="hljs-title">、 <span class="hljs-title">href title、alt aria-*、 role</span></span></span></span></span></span></span>

编码均遵循XHTML标准,
标签、属性、属性命名由小写英文、数字和_组成,且所有标签必须闭合,属性值必须用双引号"",
避免使用中文拼音尽量简易并要求语义化。

CLASS --> nHeadTitle -->

CLASS遵循小驼峰命名法(little camel-<span class="hljs-built_in">case)</span>

<span class="hljs-built_in">ID --> n_head_title --> </span>

<span class="hljs-built_in">ID遵循名称+<span class="hljs-keyword">_ NAME --> N_Head_Title --> </span></span>

<span class="hljs-built_in"><span class="hljs-keyword">NAME属性命名遵循首个字母大写+<span class="hljs-keyword">_</span></span></span>

<span class="hljs-built_in"><span class="hljs-keyword"><span class="hljs-keyword"><div class=<span class="hljs-string">"nHeadTitle" id=<span class="hljs-string">"n_head_title" name=<span class="hljs-string">"N_Head_Title"></div></span></span></span>

JAVASCRIPT获取单个元素时,通常使用document.getElementById来获取dom元素,document.getElementById兼容所有浏览器,但IE浏览器会混淆元素的ID和NAME属性,所以要区分ID和NAME命名。

<input type="text" name="test"><div id="test"></div><button onclick="alert(document.getElementById(&#39;test&#39;).tagName)"></button><!-- ie6下为INPUT -->
로그인 후 복사

特殊符号应使用转义字符。

字符 十进制 转义字符
" " "
& & &
<<<
> > >
不断开空格(non-breaking space)  

含有描述性表单元素(INPUTTEXTAREA)添加LABEL

<p><label for="test">测试</label><input type="text" id="test" /></p>
로그인 후 복사

多用无兼容性问题的HTML内置标签,
比如SPAN、EM、STRONG、OPTGROUP、LABEL等,需要自定义HTML标签属性时,首先考虑是否存在已有的合适标签可替换,如果没有,可使用须以“data-”为前缀来添加自定义属性,避免使用其他命名方式。

语义化 HTML

尽可能减少<DIV>嵌套。

书写链接地址时避免重定向。

<span class="hljs-attr">href=<span class="hljs-string">"http://www.kahn1990.com/" //即在URL地址后面加“/”</span></span>

HTML中对于属性的定义,确保全部使用双引号,绝不要使用单引号

css书写规范:

为了欺骗W3C的验证工具,可将代码分为两个文件,一个是针对所有浏览器,一个只针对IE。即将所有符合W3C的代码写到一个文件中,而一些IE中必须而又不能通过W3C验证的代码(如:
cursor:hand;)放到另一个文件中,再用下面的方法导入。

<span style="font-family: Microsoft YaHei"><span style="color: #008000"><!--</span><span style="color: #008000"> 放置所有浏览器样式</span><span style="color: #008000">--><br></span><span style="color: #0000ff"><</span><span style="color: #800000">link </span><span style="color: #ff0000">rel</span><span style="color: #0000ff">="stylesheet"</span><span style="color: #ff0000"> type</span><span style="color: #0000ff">="text/css"</span><span style="color: #ff0000"> href</span><span style="color: #0000ff">=""</span><span style="color: #0000ff">><br></span><span style="color: #008000"><!--</span><span style="color: #008000"> 只放置IE必须,而不能通过w3c的</span><span style="color: #008000">--></span></span><br><span style="font-family: Microsoft YaHei"><span style="color: #008000"><!--</span><span style="color: #008000">[if IE] <link rel="stylesheet" href=""> <![endif]</span><span style="color: #008000">--></span></span>
로그인 후 복사

CSS样式新建或修改尽量遵循以下原则。

根据新建样式的适用范围分为三级:全站级、产品级、页面级。

尽量通过继承和层叠重用已有样式。

不要轻易改动全站级CSS。

改动后,要经过全面测试。

CSS属性显示顺序。

显示属性 元素位置 元素属性 元素内容属性

CSS书写顺序。

<span style="font-family: Microsoft YaHei"><span style="color: #800000">.header </span>{ </span><br><span style="font-family: Microsoft YaHei"><span style="color: #008000">/*</span><span style="color: #008000"> 显示属性 </span><span style="color: #008000">*/</span><span style="color: #ff0000"> display || visibility list-style position top || right || bottom || left z-index clear float <br></span><span style="color: #008000">/*</span><span style="color: #008000"> 自身属性 </span><span style="color: #008000">*/</span><span style="color: #ff0000"> width max-width || min-width height max-height || min-height overflow || clip margin padding outline border background <br></span><span style="color: #008000">/*</span><span style="color: #008000"> 文本属性 </span><span style="color: #008000">*/</span><span style="color: #ff0000"> color font text-overflow text-align text-indent line-height white-space vertical-align cursor content </span>}<span style="color: #800000">;</span></span>
로그인 후 복사

兼容多个浏览器时,将标准属性写在底部。

<span style="font-family: Microsoft YaHei"><span style="color: #800000">-moz-border-radius: 15px; </span><span style="color: #008000">/*</span><span style="color: #008000"> Firefox </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>-webkit-border-radius: 15px; </span><span style="color: #008000">/*</span><span style="color: #008000"> Safari和Chrome </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>border-radius: 15px; </span><span style="color: #008000">/*</span><span style="color: #008000"> Opera 10.5+, 以及使用了IE-CSS3的IE浏览器 </span><span style="color: #008000">*/</span><span style="color: #800000">/标准属性</span></span>
로그인 후 복사

使用选择器时,命名比较短的词汇或者缩写的不允许直接定义样式。

.hd,.bd,.td{};<span class="hljs-comment">//如这些命名</span>

可用上级节点进行限定。

<span class="hljs-selector-class">.recommend-mod <span class="hljs-selector-class">.hd</span></span>

多选择器规则之间换行,即当样式针对多个选择器时每个选择器占一行。

<span style="font-family: Microsoft YaHei"><span style="color: #800000">button.btn,
input.btn, <br>input[type="button"] </span>{<span style="color: #ff0000">…</span>}<span style="color: #800000">;</span></span>
로그인 후 복사

优化CSS选择器。

#header a { color: #444; }; /*CSS选择器是从右边到左边进行匹配*/

浏览器将检查整个文档中的所有链接和每个链接的父元素,并遍历文档树去查找ID为header的祖先元素,如果找不到header将追溯到文档的根节点,解决方法如下。

避免使用通配规则和相邻兄弟选择符、子选择符,、后代选择符、属性选择符等选择器

不要限定id选择符,如div#header(提权的除外)

不要限定类选择器,如<span class="hljs-selector-tag">ul.recommend(提权的除外) </span>

<span class="hljs-selector-tag">不要使用 <span class="hljs-selector-tag">ul <span class="hljs-selector-tag">li <span class="hljs-selector-tag">a 这样长的选择符 </span></span></span></span>

<span class="hljs-selector-tag"><span class="hljs-selector-tag"><span class="hljs-selector-tag"><span class="hljs-selector-tag">避免使用标签子选择符,如<span class="hljs-selector-id">#header > <span class="hljs-selector-tag">li > a</span></span></span></span></span></span>

使用z-index属性尽量z-index的值不要超过150(通用组的除外),页面中的元素内容的z-index不能超过10(提示框等模块除外但维持在150以下),不允许直接使用(999~9999)之间大值。

尽量避免使用CSS Hack。

<span style="font-family: Microsoft YaHei"><span style="color: #800000">property:value; </span><span style="color: #008000">/*</span><span style="color: #008000"> 所有浏览器 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>+property:value; </span><span style="color: #008000">/*</span><span style="color: #008000"> IE7 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>_property:value; </span><span style="color: #008000">/*</span><span style="color: #008000"> IE6 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>*property:value; </span><span style="color: #008000">/*</span><span style="color: #008000"> IE6/7 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>property:value\9; </span><span style="color: #008000">/*</span><span style="color: #008000"> IE6/7/8/9,即所有IE浏览器 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>* html selector </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> IE6 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>*:first-child+html selector </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> IE7 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>html>body selector </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> 非IE6 </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>@-moz-document url-prefix() </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> firefox </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>@media all and (-webkit-min-device-pixel-ratio:0) </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> saf3+/chrome1+ </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>@media all and (-webkit-min-device-pixel-ratio:10000),not all and (-webkit-min-device-pixel-ratio:0) </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> opera </span><span style="color: #008000">*/</span><span style="color: #800000"> <br>@media screen and (max-device-width: 480px) </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> iPhone/mobile webkit </span><span style="color: #008000">*/</span></span>
로그인 후 복사

避免使用低效的选择器。

<span style="font-family: Microsoft YaHei"><span style="color: #800000">body > * </span>{<span style="color: #ff0000">…</span>}<span style="color: #800000">; <br>ul > li > a </span>{<span style="color: #ff0000">…</span>}<span style="color: #800000">; <br>#footer > h3 </span>{<span style="color: #ff0000">…</span>}<span style="color: #800000">; <br>ul#top_blue_nav </span>{<span style="color: #ff0000">…</span>}<span style="color: #800000">; <br>#searbar span.submit a </span>{<span style="color: #ff0000"> … </span>}<span style="color: #800000">; </span><span style="color: #008000">/*</span><span style="color: #008000"> 反面示例 </span><span style="color: #008000">*/</span></span>
로그인 후 복사

六个不要三个避免一个使用。

不要在标签上直接写样式

不要在CSS中使用expression

不要在CSS中使用 @<span class="hljs-keyword">import </span>

<span class="hljs-keyword">不要在CSS中使用 !important </span>

<span class="hljs-keyword">不要在CSS中使用“*”选择符 </span>

<span class="hljs-keyword">不要将CSS样式写为单行 </span>

<span class="hljs-keyword">避免使用 filter </span>

<span class="hljs-keyword">避免使用行内(inline)样式 </span>

<span class="hljs-keyword">避免使用“*”设置 {<span class="hljs-attribute">margin: <span class="hljs-number">0; <span class="hljs-attribute">padding: <span class="hljs-number">0;}</span></span></span></span></span>

<span class="hljs-keyword"><span class="hljs-attribute"><span class="hljs-number"><span class="hljs-attribute"><span class="hljs-number">使用 after或<span class="hljs-attribute">overflow的方式清浮动</span></span></span></span></span></span>

减少使用影响性能的属性。

<span style="color: #800000; font-family: Microsoft YaHei">position:absolute; <br>float:left; /**如这些定位或浮动属性**/</span>
로그인 후 복사

减少在CSS中使用滤镜表达式和图片repeat,
尤其在body当中,渲染性能极差, 如果需要用repeat的话,
图片的宽或高不能少于8px。

协议
不要指定引入资源所带的具体协议。
当引入图片或其他媒体文件,还有样式和脚本时,URLs 所指向的具体路径,不要指定协议部分(http:, https:),除非这两者协议都不可用。
不指定协议使得 URL 从绝对的获取路径转变为相对的,在请求资源协议无法确定时非常好用,而且还能为文件大小节省几个字节。
不推荐

推荐

 javaScript书写规范:

命名规范。

常量名    全部大写并单词间用下划线分隔   <span style="color: #ff9900"> 如:CSS_BTN_CLOSE、TXT_LOADING</span>

对象的属性或方法名    小驼峰式(little camel-case)   <span style="color: #ff9900"> 如:init、bindEvent、updatePosition</span>

   示例:

Dialog.prototype = { init: function () {}, bindEvent: function () {}, updatePosition: function () {} … };
로그인 후 복사

<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"> <span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"> 이름(构造器) <span class="hljs-comment">--><code class="lua"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params">类名(构造器) <span class="hljs-comment">--></span></span></span></span></span></span></span></span></span></span>

<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment">小驼峰式但首字母大写 <span class="hljs-comment">-->如:<span style="color: #ff9900">Current、DefaultConfig</span> </span></span></span></span></span></span></span></span></span></span></span>

<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment">函数名 <span class="hljs-comment">-->小驼峰式 <span class="hljs-comment">-->如:<span style="color: #ff9900">current()、defaultConfig()</span> </span></span></span></span></span></span></span></span></span></span></span></span></span>

<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment">变量名 <span class="hljs-comment">-->小驼峰式 <span class="hljs-comment">-->如:<span style="color: #ff9900">current、defaultConfig</span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment">私有变量名 <span class="hljs-comment">-->小驼峰式但需要用_开头 <span class="hljs-comment">-->如:<span style="color: #ff9900">_current、_defaultConfig</span> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment">变量名的前缀 <span class="hljs-comment">-->续</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>

代码格式。

<span class="hljs-string">"()"前后需要跟空格 </span>

<span class="hljs-string"><span class="hljs-string">"="前后需要跟空格 </span></span>

<span class="hljs-string"><span class="hljs-string"><span class="hljs-string">","后面需要跟空格 </span></span></span>

🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment">小驼峰式但首字母大写 <span class="hljs-comment">-->如:<span style="color: #ff9900">Current、DefaultConfig🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜</span></span></span></span></span></span></span></span></span></span></span></span>🎜 🎜🎜🎜<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment">인용 이름 <span class="hljs-comment">-->小驼峰式 <span class="hljs-comment"> -->如:<span style="color: #ff9900">current()、defaultConfig()🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜</span></span></span></span></span></span></span></span></span></span></span></span></span></span>🎜🎜🎜🎜<span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs -keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs -comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment">수량명 <span class="hljs-comment">-->小驼峰式 <span class="hljs-comment">-->如:<span style="color: #ff9900">current、defaultConfig🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜<code class="lua"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class=" hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class=" hljs-params"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class=" hljs-comment"><span class="hljs-comment">私有变weightname <span class="hljs-comment">-->小驼峰式但需要用_开头 <span class="hljs-comment"> -& gt;; : <span style="color : #ff9900"> _ current 、 _defaultConfig🎜 </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span> <span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs -keyword"><span class="hljs-params"><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs -comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs -comment"><span class="hljs-comment"><span class="hljs-comment">变weightname的前缀 <span class="hljs-comment">-->续🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>🎜🎜

🎜代码格式。🎜🎜

<span class="hljs-string">"()"前后需要跟空格 🎜</span>🎜🎜

<span class="hljs-string"><span class="hljs-string">"="前后需要跟空格 🎜🎜</span></span>🎜 🎜

<span class="hljs-string"><span class="hljs-string"><span class="hljs-string">","后면需要跟공格 🎜🎜🎜</span></span></span>🎜🎜

<span class="hljs-string"><span class="hljs-string"><span class="hljs-string"><span class="hljs-built_in">JSON对象需格式化对象参数 </span></span></span></span>

<span class="hljs-string"><span class="hljs-string"><span class="hljs-string"><span class="hljs-built_in"><span class="hljs-keyword">if、<span class="hljs-keyword">while、<span class="hljs-keyword">for、<span class="hljs-keyword">do 语句的执行体用<span class="hljs-string">"{}"括起来</span></span></span></span></span></span></span></span></span>

"{}"格式如下。

<span class="hljs-keyword">if <span class="hljs-comment">(a==1) { <span class="hljs-comment">//代码 };</span></span></span>

避免额外的逗号。

var arr = [<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3,];</span></span></span>

for-in循环体中必须用hasOwnProperty方法检查成员是否为自身成员,避免来自原型链上的污染。

长语句可考虑断行。

<span style="font-family: Microsoft YaHei">TEMPL_SONGLIST.replace('{TABLE}', da['results']) .replace('{PREV_NUM}', prev) </span><br><span style="font-family: Microsoft YaHei">.replace('{NEXT_NUM}', next) </span><br><span style="font-family: Microsoft YaHei">.replace('{CURRENT_NUM}', current) </span><br><span style="font-family: Microsoft YaHei">.replace('{TOTAL_NUM}', da.page_total);</span>
로그인 후 복사

为了避免和JSLint的检验机制冲突,“.”或“+”这类操作符放在行尾。

<span style="font-family: Microsoft YaHei">TEMPL_SONGLIST.replace('{TABLE}', da['results']). </span><br><span style="font-family: Microsoft YaHei">replace('{PREV_NUM}', prev).</span><br><span style="font-family: Microsoft YaHei">replace('{NEXT_NUM}', next). </span><br><span style="font-family: Microsoft YaHei">replace('{CURRENT_NUM}', current). </span><br><span style="font-family: Microsoft YaHei">replace('{TOTAL_NUM}', da.page_total);</span>
로그인 후 복사

如果模块代码中,使用其它全局变量想跳过JSLint的检查,可以在该文件中加入/*global*/声明。

/*<span class="hljs-keyword">global alert: <span class="hljs-literal">true, console: <span class="hljs-literal">true, top: <span class="hljs-literal">true, setTimeout: <span class="hljs-literal">true */</span></span></span></span></span>

使用严格的条件判断符。用===代替==,用!==代替!=,避免掉入==造成的陷阱
在条件判断时,这样的一些值表示false。

<span class="hljs-literal">null</span>

<span class="hljs-literal"><span class="hljs-literal">undefined与<span class="hljs-literal">null相等</span></span></span>

<span class="hljs-literal"><span class="hljs-literal"><span class="hljs-literal">字符串<span class="hljs-string">''</span></span></span></span>

<span class="hljs-literal"><span class="hljs-literal"><span class="hljs-literal"><span class="hljs-string">数字<span class="hljs-number">0</span></span></span></span></span>

<span class="hljs-literal"><span class="hljs-literal"><span class="hljs-literal"><span class="hljs-string"><span class="hljs-number"><span class="hljs-literal">NaN</span></span></span></span></span></span>

在==时,则会有一些让人难以理解的陷阱。

(function () { 
var undefined; 
undefined == null; // true 1 == true; //true 2 == true; // false 0 == false; // true 0 == ''; // true NaN == NaN;// false [] == false; // true [] == ![]; // true })();
로그인 후 복사

对于不同类型的 == 判断,有这样一些规则,顺序自上而下:

<span class="hljs-literal">undefined与<span class="hljs-literal">null相等 </span></span>

<span class="hljs-literal"><span class="hljs-literal">一个是<span class="hljs-built_in">number一个是<span class="hljs-built_in">string时,会尝试将<span class="hljs-built_in">string转换为<span class="hljs-built_in">number </span></span></span></span></span></span>

<span class="hljs-literal"><span class="hljs-literal"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in">尝试将<span class="hljs-built_in">boolean转换为<span class="hljs-built_in">number </span></span></span></span></span></span></span></span>

<span class="hljs-literal"><span class="hljs-literal"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-number">0或<span class="hljs-number">1 </span></span></span></span></span></span></span></span></span></span>

<span class="hljs-literal"><span class="hljs-literal"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-built_in"><span class="hljs-number"><span class="hljs-number">尝试将<span class="hljs-built_in">Object转换成<span class="hljs-built_in">number或<span class="hljs-built_in">string</span></span></span></span></span></span></span></span></span></span></span></span></span>

而这些取决于另外一个对比量,即值的类型,所以对于0、空字符串的判断,建议使用=== ===会先判断两边的值类型,类型不匹配时为false

下面类型的对象不建议用new构造。

<span class="hljs-keyword">new <span class="hljs-type">Number </span></span>

<span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword">new <span class="hljs-type">String </span></span></span></span>

<span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword">new <span class="hljs-type">Boolean </span></span></span></span></span></span>

<span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword">new <span class="hljs-type">Object <span class="hljs-comment">//用{}代替 </span></span></span></span></span></span></span></span></span>

<span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword"><span class="hljs-type"><span class="hljs-keyword"><span class="hljs-type"><span class="hljs-comment"><span class="hljs-keyword">new <span class="hljs-type">Array <span class="hljs-comment">//用[]代替</span></span></span></span></span></span></span></span></span></span></span></span>

引用对象成员用obj.prop代替obj["prop"],除非属性名是变量。

从number到string的转换。

/** 推荐写法*/ var a = 1; 
typeof(a); //"number" console.log(a); //1 var aa=a+''; typeof(aa); //"string" console.log(aa); //'1' /** 不推荐写法*/ new String(a)或a.toString()
로그인 후 복사

从string到number的转换,使用parseInt,必须显式指定第二个参数的进制。

/** 推荐写法*/ var a = '1'; 
var aa = parseInt(a,10); 
typeof(a); //"string" console.log(a); //'1' typeof(aa); //"number" console.log(aa); //1
로그인 후 복사

从float到integer的转换。

/** 推荐写法*/ Math.floor/Math.round/Math.ceil 
/** 不推荐写法*/ parseInt
로그인 후 복사

字符串拼接应使用数组保存字符串片段,使用时调用join方法。避免使用+或+=的方式拼接较长的字符串,每个字符串都会使用一个小的内存片段,过多的内存片段会影响性能。

/**推荐的拼接方式array的push、join*/ var str=[], 
    list=['测试A','测试B']; 
for (var i=0 , len=list.length; i < len; i++) { 
    str.push( &#39;<div>'+ list[i] + '</div>'); 
}; 
console.log(str.join('')); //<div>测试A</div><div>测试B</div>/** 不推荐的拼接方式+=*/var str = '', 
    list=['测试A','测试B'];for (var i = 0, len = list.length; i< len; i++) { 
    str+='<div>' + list[i] + '</div>'; 
}; 
console.log(str); //<div>测试A</div><div>测试B</div>
로그인 후 복사

尽量避免使用存在兼容性及消耗资源的方法或属性。

不要使用<span class="hljs-keyword">with,<span class="hljs-keyword">void,evil,eval_r,innerText</span></span>

注重HTML分离, 减小reflow, 注重性能。

图片规范:

命名应用小写英文数字_组合,便于团队其他成员理解。

<span class="hljs-selector-tag">header_btn<span class="hljs-selector-class">.gif <span class="hljs-selector-tag">header_btn2<span class="hljs-selector-class">.gif</span></span></span></span>

页面元素类图片均放入img文件夹,测试用图片放于img/testimg文件夹,psd源图放入img/psdimg文件夹。

图片格式仅限于gifpngjpg等。

png图片做图片时,要求图片格式为png-8格式,若png-8实在影响图片质量或其中有半透明效果,请为ie-6单独定义背景,并尽量避免使用半透明的png图片。

背景图片请尽可能使用sprite技术, 减小http请求。

注释规范:

JAVASCRIPTCSS文件注释需要标明作者、文件版本、创建/修改时间、重大版本修改记录、函数描述、文件版本、创建或者修改时间、功能、作者等信息。

/* * 注释块 */
로그인 후 복사

中间可添加如下信息。

@file 文件名@addon 把一个函数标记为另一个函数的扩张,另一个函数的定义不在源文件中@argument 用大括号中的自变量类型描述一个自变量@author 函数/类作者的姓名@base 如果类是继承得来,定义提供的类名称@class 用来给一个类提供描述,不能用于构造器的文档中@constructor 描述一个类的构造器@deprecated 表示函数/类已被忽略@exception 描述函数/类产生的一个错误@exec @extends 表示派生出当前类的另一个类@fileoverview 表示文档块将用于描述当前文件,这个标签应该放在其它任何标签之前@final 指出函数/类@ignore 让jsdoc忽视随后的代码@link 类似于@link标签,用于连接许多其它页面@member 定义随后的函数为提供的类名称的一个成员@param 用大括号中的参数类型描述一个参数@private 表示函数/类为私有,不应包含在生成的文档中@requires 表示需要另一个函数/类@return 描述一个函数的返回值@see 连接到另一个函数/类@throws 描述函数/类可能产生的错误@type 指定函数/成员的返回类型@version 函数/类的版本号
로그인 후 복사

开发及测试工具约定:

编码格式化,三码统一。

测试工具: 前期开发仅测试FireFox & IE6 & IE7 & IE8 & IE9 & Opera &Chrome & Safari

参考和借鉴了大家的经验,众人拾柴火焰高,技术无国界,持续更新中。

 

위 내용은 웹 프론트엔드 개발 사양 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

이 문서의 페이지를 다시 매거나 인쇄하려면 메모리나 디스크 공간이 부족합니다. Word 오류 이 문서의 페이지를 다시 매거나 인쇄하려면 메모리나 디스크 공간이 부족합니다. Word 오류 Feb 19, 2024 pm 07:15 PM

이 기사에서는 Microsoft Word에서 문서를 다시 페이지하거나 인쇄하기 위한 메모리나 디스크 공간 부족 문제를 해결하는 방법을 소개합니다. 이 오류는 일반적으로 사용자가 Word 문서를 인쇄하려고 할 때 발생합니다. 비슷한 오류가 발생하는 경우 이 문서에 제공된 제안 사항을 참조하여 문제를 해결하세요. 이 문서를 다시 페이지하거나 인쇄할 메모리나 디스크 공간이 부족합니다. Word 오류 "문서를 다시 페이지하거나 인쇄할 메모리나 디스크 공간이 부족합니다."라는 Microsoft Word 인쇄 오류를 해결하는 방법입니다. Microsoft Office 업데이트 메모리를 많이 차지하는 응용 프로그램 닫기 기본 프린터 변경 안전 모드에서 Word 시작 NorMal.dotm 파일 이름 바꾸기 Word 파일을 다른 이름으로 저장

Word 문서에 수정 지시를 추가하는 방법 Word 문서에 수정 지시를 추가하는 방법 Mar 01, 2024 am 09:40 AM

395단어, 즉 495단어입니다. 이 기사에서는 Word 문서에 빨간색 선을 추가하는 방법을 보여줍니다. 문서에 레드라인을 긋는 것은 사용자가 변경 사항을 명확하게 볼 수 있도록 문서를 수정하는 것을 의미합니다. 이 기능은 여러 사람이 함께 문서를 편집할 때 매우 중요합니다. 빨간색 선의 의미 문서 표시 빨간색 선은 빨간색 선이나 설명선을 사용하여 문서의 변경, 편집 또는 수정 사항을 나타내는 것을 의미합니다. 이 용어는 인쇄된 문서를 표시하기 위해 빨간 펜을 사용하는 관행에서 영감을 받았습니다. Redline 주석은 문서를 편집할 때 작성자, 편집자 및 검토자에게 권장되는 변경 사항을 명확하게 표시하는 등 다양한 시나리오에서 널리 사용됩니다. 법적 계약이나 계약의 변경 및 수정을 제안합니다. 논문, 발표 등에 대한 건설적인 비판과 제안을 제공합니다. W를 주는 방법

Word 문서에서 하이퍼링크를 열 수 없습니다 Word 문서에서 하이퍼링크를 열 수 없습니다 Feb 18, 2024 pm 06:10 PM

최근 네트워크 기술의 지속적인 발전으로 인해 우리의 삶은 다양한 디지털 도구와 인터넷으로부터 분리될 수 없게 되었습니다. 문서를 처리할 때, 특히 서면으로 문서를 처리할 때 우리는 종종 워드 문서를 사용합니다. 그러나 때로는 어려운 문제에 직면할 수도 있습니다. 즉, 단어 문서의 하이퍼링크가 열리지 않는 경우가 있습니다. 이 문제는 아래에서 논의됩니다. 우선, 하이퍼링크는 워드 문서에 추가된 다른 문서, 웹 페이지, 디렉터리, 북마크 등에 대한 링크를 의미한다는 점을 분명히 해야 합니다. 이 링크를 클릭하면 나는

표준 출력 구현을 위해 Go 언어 문서에서 os.Stdout.Write 함수를 알아보세요. 표준 출력 구현을 위해 Go 언어 문서에서 os.Stdout.Write 함수를 알아보세요. Nov 03, 2023 pm 03:48 PM

표준 출력을 구현하려면 Go 언어 문서에서 os.Stdout.Write 함수를 알아보세요. Go 언어에서 표준 출력은 os.Stdout을 통해 구현됩니다. os.Stdout은 표준 출력 장치를 나타내는 *os.File 유형의 변수입니다. 콘텐츠를 표준 출력으로 출력하려면 os.Stdout.Write 함수를 사용할 수 있습니다. 이 기사에서는 os.Stdout.Write 함수를 사용하여 표준 출력을 구현하고 특정 코드 예제를 제공하는 방법을 소개합니다. OS.

Windows 11/10에서 열 때 Word 문서가 비어 있습니다. Windows 11/10에서 열 때 Word 문서가 비어 있습니다. Mar 11, 2024 am 09:34 AM

Windows 11/10 컴퓨터에서 Word 문서를 열 때 빈 페이지 문제가 발생하면 상황을 해결하기 위해 복구해야 할 수도 있습니다. 이 문제의 원인은 다양하며, 가장 일반적인 원인 중 하나는 손상된 문서 자체입니다. 또한 Office 파일이 손상되면 유사한 상황이 발생할 수도 있습니다. 따라서 이 문서에서 제공하는 수정 사항이 도움이 될 수 있습니다. 일부 도구를 사용하여 손상된 Word 문서를 복구해 보거나 문서를 다른 형식으로 변환한 후 다시 열어볼 수 있습니다. 또한 시스템의 Office 소프트웨어를 업데이트해야 하는지 확인하는 것도 이 문제를 해결하는 방법입니다. 다음의 간단한 단계를 따르면 Win에서 Word 문서를 열 때 Word 문서가 비어 있는 문제를 해결할 수 있습니다.

Java 문서 해석: StringBuilder 클래스의 substring() 메서드에 대한 자세한 소개 Java 문서 해석: StringBuilder 클래스의 substring() 메서드에 대한 자세한 소개 Nov 03, 2023 pm 04:31 PM

Java 문서 해석: StringBuilder 클래스의 substring() 메소드에 대한 자세한 소개 소개: Java 프로그래밍에서 문자열 처리는 가장 일반적인 작업 중 하나입니다. Java는 문자열 처리를 위한 일련의 클래스와 메서드를 제공하며, 그중 StringBuilder 클래스는 자주 사용되는 문자열 작업에 일반적으로 사용됩니다. StringBuilder 클래스에서 substring() 메서드는 문자열의 하위 문자열을 가로채는 데 매우 유용한 메서드입니다. 이 기사는

Workerman 문서의 기본 사용법을 구현하는 방법 Workerman 문서의 기본 사용법을 구현하는 방법 Nov 08, 2023 am 11:46 AM

Workerman 문서의 기본 사용법을 구현하는 방법 소개: Workerman은 개발자가 동시성이 높은 네트워크 애플리케이션을 쉽게 구축하는 데 도움이 되는 고성능 PHP 개발 프레임워크입니다. 이 기사에서는 설치 및 구성, 서비스 및 수신 포트 생성, 클라이언트 요청 처리 등 Workerman의 기본 사용법을 소개합니다. 그리고 해당 코드 예제를 제공하십시오. 1. Workerman을 설치하고 구성하려면 명령줄에 다음 명령을 입력합니다.

Word 문서 작업에 대한 자세한 설명: 두 페이지를 하나로 병합 Word 문서 작업에 대한 자세한 설명: 두 페이지를 하나로 병합 Mar 26, 2024 am 08:18 AM

Word 문서는 일상 업무와 학습에서 가장 자주 사용되는 응용 프로그램 중 하나입니다. 문서 작업을 하다 보면 두 페이지를 하나로 병합해야 하는 상황이 가끔 발생할 수 있습니다. 이 기사에서는 독자가 문서 레이아웃을 보다 효율적으로 처리할 수 있도록 Word 문서에서 두 페이지를 한 페이지로 병합하는 방법을 자세히 소개합니다. Word 문서에서 두 페이지를 하나로 병합하는 작업은 일반적으로 용지 비용과 인쇄 비용을 절약하거나 문서를 더 간결하고 깔끔하게 만들기 위해 사용됩니다. 다음은 두 페이지를 하나로 병합하는 구체적인 단계입니다. 1단계: 작동해야 하는 단어를 엽니다.

See all articles