前端编码规范
<h3 id="p-1">不规范写法举例 1.?句尾没有分号 var isHotel = json.type == "hotel" ? true : false 2.?变量命名各种各样 var is_hotel; var isHotel; var ishotel; 3.?if?缩写 if (isHotel) console.log(true) else console.log(false) 4.?使用?eval var json = eval(jsonText); 5.?变量未定义到处都是 function() { var isHotel = 'true'; ....... 6.?超长函数 function() { var isHotel = 'true'; //....... 此处省略500行 return false; } 7.?.......... 书写不规范的代码让我们难以维护,有时候也让我们头疼。 (禁止)、(必须)等字眼,在这里只是表示强调,未严格要求。 <h3 id="p-2">前端规范之JavaScript 1. 每句代码后(必须)加";" ?这个是要引起注意的,比如: a = b // 赋值 (function(){ //.... })() // 自执行函数 ?未加分号,结果被解析成 a = b(function(){//...})() //将b()()返回的结果赋值给a ?这是截然不同的两个结果,所以对于这个问题必须引起重视!!! 2.?变量、常量、类的命名按(必须)以下规则执行: 1)?变量: // 正确的命名 var isHotel,isHotelBeijing,isHotelBeijingHandian; 2)?常量: // 正确的命名 var HOTEL_GET_URL = 'http://map.baidu.com/detail',PLACE_TYPE = 'hotel'; 3)?类: // 正确的写法 var FooAndToo = function(name) { this.name = name; } 3.?在同一个函数内部,局部变量的声明 因为即使放到中间,js解析器也会提升至顶部(hosting) // 正确的书写 var clear = function(el) { var id = el.id,name = el.getAttribute("data-name"); ?推荐阅读: 4.?块内函数 // 错误的写法 var call = function(name) { if (name == "hotel") { function foo() { console.log("hotel foo"); } } 引起的bug:第一种写法 注:不同浏览器解析不同,具体请移步汤姆大叔 5.? // 正确的书写 if (true) { alert(name); } console.log(name); // 不推荐的书写 if (true) alert(name); console.log(name); // 不推荐的书写 if (true) alert(name); console.log(name) 6.?( // 没有换行,小的代码段无法区分 if (wl && wl.length) { for (i = 0,l = wl.length; i < l; ++i) { p = wl[i]; type = Y.Lang.type(r[p]); if (s.hasOwnProperty(p)) { if (merge && type == 'object') { Y.mix(r[p],s[p]); } else if (ov || !(p in r)) { r[p] = s[p]; } } } } // 有了换行,逻辑清楚多了 if (wl && wl.length) { 换行可以是空行,也可以是注释 ? 7.?( ? <h3 id="p-3">小结 平时写代码的时候注意格式,不仅仅方便了自己,也让其他阅读者看得舒服。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |