javascript 코드 사양
코딩 사양 우리는 "할 수 있다고 해서 반드시 해야 하는 것은 아니다"라는 고대 원칙을 따라야 합니다.
항상 독립적인 모듈을 구성하려면 즉시 함수 표현식으로 코드를 래핑하세요.
권장하지 않음
var x = 10, y = 100; console.log(window.x + ' ' + window.y);
권장
;(function(window){ 'use strict'; var x = 10, y = 100; console.log(window.x + ' ' + window.y); }(window));
에서 즉시 실행 함수에서 전역 변수를 사용하는 경우에는 함수의 함수 몸체가 바로 실행될 때 변수를 통해 함수 몸체를 호출할 수 있다. 어느 정도 프로그램 성능을 향상시킬 수 있습니다.
그리고즉시 실행 함수의 형식 매개변수 마지막 위치에 undef를 추가해야 합니다. 이는 undef의 값이 변경되면 undef를 읽고 쓸 수 있기 때문입니다. 전역 위치에서는 코드가 기한이 지난 결과를 얻지 못할 수 있습니다.
병합 시 다른 사람 코드의 불규칙성으로 인해 자신의 코드에 영향을 주지 않도록함수 즉시 실행의 시작과 끝 부분에 세미콜론을 추가하는 것도 좋습니다
권장하지 않음
(function(){ 'use strict'; var x = 10, y = 100, c, elem=$('body'); console.log(window.x + ' ' + window.y); $(document).on('click',function(){ }); if(typeof c==='undefined'){ //你的代码 } }());
권장
;(function($,window,document,undefined){ 'use strict'; var x = 10, y = 100, c, elem=$('body'); console.log(window.x + ' ' + window.y); $(document).on('click',function(){ }); if(typeof c==='undefined'){ //你的代码 } }(jQuery,window,document));
권장하지 않음
'use strict'; (function(){ }());
권장
(function(){ 'use strict'; }());
권장하지 않음
function myFun(){ x=5; y=10; }
완전히 권장하지 않음
function myFun(){ var x=5; var y=10; }
권장
function myFun(){ var x=5, y=10; }
권장하지 않음
(function(w){ 'use strict'; w.console.log('0' == 0); // true w.console.log('' == false); // true w.console.log('1' == true); // true w.console.log(null == undefined); // true var x = { valueOf: function() { return 'X'; } }; w.console.log(x == 'X');//true }(window.console.log));
권장
(function(w){ 'use strict'; w.console.log('0' === 0); // false w.console.log('' === false); // false w.console.log('1' === true); // false w.console.log(null === undefined); // false var x = { valueOf: function() { return 'X'; } }; w.console.log(x === 'X');//false }(window));
권장하지 않음
if(!x) { if(!y) { x = 1; } else { x = y; } }
권장
x = x || y || 1;
// 1. MyClass.prototype.myMethod = function() { return 42; } //这里没有分号 (function() { })(); //2. var x = { 'i': 1, 'j': 2 } // 这里没有分号 //我知道这样的代码你可能永远不会写,但是还是举一个例子 [ffVersion, ieVersion][isIE](); // 3. var THINGS_TO_EAT = [apples, oysters, sprayOnCheese] // 这里没有分号 -1 == resultOfOperation() || die();
오류 결과
권장하지 않음
if (x) { function foo() {} }
권장
if (x) { var foo = function() {}; }
권장하지 않음
//数组长度3 var a1 = new Array(x1, x2, x3); //数组长度2 var a2 = new Array(x1, x2); //如果x1是一个自然数,那么它的长度将为x1 //如果x1不是一个自然数,那么它的长度将为1 var a3 = new Array(x1); var a4 = new Array();
추천
var a = [x1, x2, x3]; var a2 = [x1, x2]; var a3 = [x1]; var a4 = [];
不推荐
var o = new Object(); var o2 = new Object(); o2.a = 0; o2.b = 1; o2.c = 2; o2['strange key'] = 3;
推荐
var o = {}; var o2 = { a: 0, b: 1, c: 2, 'strange key': 3 };
用三元操作符分配或返回语句。在比较简单的情况下使用,避免在复杂的情况下使用。没人愿意用 10 行三元操作符把自己的脑子绕晕。
不推荐
if(x === 10) { return 'valid'; } else { return 'invalid'; }
推荐
return x === 10 ? 'valid' : 'invalid';
使用for循环过程中,数组的长度,使用一个变量来接收,这样有利于代码执行效率得到提高,而不是每走一次循环,都得重新计算数组长度
不推荐
for(var i=0;i<arr.length,i++){ }
推荐
for(var i=0,len=arr.length;i<len,i++){ }
重复的dom操作,使用一个变量来进行接收很有必要,而不是频繁的去操作dom树,这对性能与代码的整洁及易维护性带来不好的影响
不推荐
$('.myp').find('.span1').text('1'); $('.myp').find('.span2').text('2'); $('.myp').find('.span3').text('3'); $('.myp').find('.span4').text('4');
推荐
var myp=$('.myp'); myp.find('.span1').text('1'); myp.find('.span2').text('2'); myp.find('.span3').text('3'); myp.find('.span4').text('4');
在jquery .end()可使用的情况下应该优先使用.end()
推荐
$('.myp').find('.span1').text('1') .end().find('.span2').text('2'); .end().find('.span3').text('3'); .end().find('.span4').text('4');
在描写注释时,推荐格式化且统一的注释风格,在写注释时尽量描述写代码时的思路,而不是代码做了什么。
不推荐
//获取订单 function getOrderByID(id){ var order; //... return order; }
方法的注释应该统一用块级注释
推荐
/** * 根据订单id获取订单详细数据 * @param {[number]} id [订单ID] * @return {[order]} [订单详细信息] */ function getOrderByID(id){ var order; //... return order; }
以上就是JavaScript-总结常用代码书写规范的内容,更多相关内容请关注PHP中文网(m.sbmmt.com)!