您好,登錄后才能下訂單哦!
JavaScript中有哪些編程規范,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
JavaScript是一種客戶端腳本語言,Web工程都會用到它,這份指南列出了編寫JavaScript時需要遵守的規則。
聲明變量必須加上var
關鍵字:
var a1 = 1;var b1 = 11;
當你沒有寫var
,變量就會暴露在全局上下文中,這樣很可能會和現有的變量沖突。另外,如果沒有加上,很難明確該變量的作用域是什么,變量很可能在局部作用域中,很容易泄漏到Document或者Window中,所以務必用var
變量。
常量的形式如:NAMES_LIKE_THIS
,即使用大寫字符,并用下劃線分割,你也可用@const
標記來指明它是一個常量,但請不要使用const
關鍵字。
對于基本類型的常量,只需要轉換命名:
/** * The number of seconds of minute. * @type {number} */eflag.example.SECONDES_IN_A_MINUTE = 60;
對于非基本類型,使用@const
標記:
/** * The number of seconds in each of the given units. * @type {Object.<number>} * @const */eflag.example.SECONDS_TABLE = {minute: 60,hour: 60 * 60,day: 60 * 60 * 24}
至于關鍵字const
,因為IE不能識別,所以不要使用。
總是使用分號。 如果僅依靠語句間的隱式分割,有時會很麻煩,使用分號,你自己更能清楚那里是語句的起止。
行末分號:
var foo = 1,bar = 2,baz = 3; var obj = {foo: 1,bar: 2,baz: 3};
''
)和雙引號(""
)由于JavaScript對于單引號和雙引號都可以識別為字符串,但為了統一規范,所以在JavaScript中字符串的定義要求使用單引號:
var val = 'a';
同樣,html中屬性使用的是雙引號:
<input type="text">
在JavaScript中動態生成html標簽時:
var _input = '<input type="text">';
參數和括號間五空格:
function fn(arg1, arg2){}
冒號后面有空格
{foo: 1,bar: 2,baz: 3}
條件語句有空格
if (true) {}while (true) {}switch(v){}
下面的布爾表達式都會返回false
:
nullundefined''空字符串0
數字0
但小心下面的,可都返回true
:
'0'字符串0[] 空數組{}空對象
如果你想檢查字符串是否為null
或空
:
if (y != null && y != '') {}
寫成這樣會更好:
if (y) {}
?:
)三元操作符用于替代下面的代碼:
if (val != 0) { return foo(); } else { return bar(); }
你可以寫成:
return val ? foo() : bar();
在生成HTML代碼時也是很有用的:
var html = '<input type="checkbox"' + (isChecked ? ' checked' : '')+ (isEnabled ? '' : ' disabled')+ ' name="foo">';
&&
和||
二元布爾操作符是可短路的,只有在必要的時候才會計算到最后一項。 ||
被稱作為default
操作符,因為可以這樣:
/** * @param {*=} opt_win */function foo(opt_win) { var win; if (opt_win) { win = opt_win; } else { win = window; }// ...}
你可以使用它來簡化上面的代碼:
/** * @param {*=} opt_win */function foo(opt_win) { var win = opt_win || window; // ...}
join()
來創建字符串通常是這樣使用的:
function listHtml(items) { var html = '<div class="foo"'; for (var i = 0; i < items.length; i++) { if (i > 0) { html += ','; } html += itemHtml(items[i]); } html += '</div>'; return html; }
但這樣在IE下非常慢,可以用下面的方式:
function listHtml(items) { var html = []; for (var i = 0; i < items.length; i++) { html[i] = itemHtml(items[i]); } return '<div class="foo">' + html.join(', ') + '</div>'; }
你也可以使用數組作為字符串構造器,然后通過myArray.join('')
轉換成字符串,不過由于賦值操作快于數組的push()
,所以盡量使用復制操作。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。