javascript中注釋的正確寫(xiě)法 CSS的注釋標(biāo)記是什么?
CSS的注釋標(biāo)記是什么?標(biāo)簽是由JavaScript生成的,在其他地方很難看到,或者,CSS特定于插件或第三方插件如何寫(xiě)出優(yōu)雅的js代碼?我總是覺(jué)得我寫(xiě)的代碼很難看,當(dāng)我想寫(xiě)一個(gè)復(fù)雜的應(yīng)用程序時(shí),我不
CSS的注釋標(biāo)記是什么?
標(biāo)簽是由JavaScript生成的,在其他地方很難看到,或者,
CSS特定于插件或第三方插件
如何寫(xiě)出優(yōu)雅的js代碼?
我總是覺(jué)得我寫(xiě)的代碼很難看,當(dāng)我想寫(xiě)一個(gè)復(fù)雜的應(yīng)用程序時(shí),我不 我不知道如何開(kāi)始。和別人寫(xiě)的框架一樣,各個(gè)類(lèi)的繼承是清晰嚴(yán)謹(jǐn)?shù)?。我該如何提高這方面的能力?
謝謝邀請(qǐng)。首先要利用好名字,容易理解名字的含義,然后整理模塊功能,最后標(biāo)注引用源。優(yōu)化器可以壓縮格式和簡(jiǎn)化命名,所以你不用 不必考慮格式造成的空間浪費(fèi)。你要用TAB縮進(jìn)模塊,用備注寫(xiě)清楚用法和注意事項(xiàng)。
js編碼規(guī)范答案?
1.嵌入規(guī)則
Javascript程序應(yīng)該放在。js文件,并在需要時(shí)以ltscript src#34filename.js#34gt的形式包含在頁(yè)面中。如果Javascript代碼不是特定于頁(yè)面的,您應(yīng)該盡量避免直接在頁(yè)面中編寫(xiě)Javascript代碼。
2.對(duì)齊縮進(jìn)和換行
a)縮進(jìn)
同一系統(tǒng)應(yīng)采用相同的壓痕標(biāo)準(zhǔn)。本文主張縮進(jìn)大小應(yīng)為4個(gè)空格。編譯器對(duì)Tab鍵替換的空間大小有不同的定義。建議在設(shè)置開(kāi)發(fā)環(huán)境時(shí),將編輯器中的Tab快捷鍵重置為4個(gè)空格。大多數(shù)編譯器都提供這個(gè)特性。否則建議縮進(jìn)4個(gè)空格。
b)換行
必須在以下位置換行:
在每個(gè)獨(dú)立語(yǔ)句的末尾;
If,else,catch,finally,while等關(guān)鍵詞;
當(dāng)一行在運(yùn)算符處中斷時(shí),該運(yùn)算符必須位于新行的開(kāi)頭。
對(duì)于單行長(zhǎng)度超出限制時(shí)出現(xiàn)的換行,請(qǐng)參考行長(zhǎng)度中的分隔策略。
1).字符串太長(zhǎng),被截?cái)唷?/p>
每行代碼應(yīng)少于80個(gè)字符。如果代碼比較長(zhǎng),要盡量斷行,斷行要選在運(yùn)算符和標(biāo)點(diǎn)符號(hào)之后,最好選在分號(hào)或逗號(hào)之后。下一行代碼相對(duì)于前一行縮進(jìn)4個(gè)空格。這樣可以有效防止復(fù)制粘貼造成的代碼丟失等錯(cuò)誤,增強(qiáng)可讀性。
將字符串截?cái)嘁欢ㄩL(zhǎng)度,并用運(yùn)算符連接。盡可能在語(yǔ)義上分隔字符串,比如不要在一個(gè)完整的名詞中間斷開(kāi)。特別地,對(duì)于HTML片段的拼接,通過(guò)縮進(jìn)來(lái)維持與HTML相同的結(jié)構(gòu):
您還可以使用數(shù)組進(jìn)行縫合,這使得相對(duì)于操作調(diào)整縮進(jìn)變得更加容易:
2).三元運(yùn)算符太長(zhǎng)。
三元運(yùn)算符由三部分組成,因此其換行符應(yīng)根據(jù)各部分的長(zhǎng)度而不同,形成三種不同的情況:
不得出現(xiàn)以下情況:
3).邏輯條件組合過(guò)長(zhǎng)
當(dāng)80個(gè)字符可以 由于復(fù)雜的邏輯條件組合,每個(gè)字符都應(yīng)該個(gè)條件獨(dú)立一行,邏輯運(yùn)算符放置在行首進(jìn)行分隔,或?qū)⒉糠诌壿嫲催壿嫿M合進(jìn)行分隔。最終將右括號(hào))與左大括號(hào){放在獨(dú)立一行,保證與if內(nèi)語(yǔ)句塊能容易視覺(jué)辨識(shí)。如:
4).過(guò)長(zhǎng)的JSON和數(shù)組
如果對(duì)象屬性較多導(dǎo)致每個(gè)屬性一行占用空間過(guò)大,可以按語(yǔ)義或邏輯進(jìn)行分組的組織,如:
通過(guò)5個(gè)一組的分組,將每一行控制在合理的范圍內(nèi),并且按邏輯進(jìn)行了切分。 對(duì)于項(xiàng)目較多的數(shù)組,也可以采用相同的方法,如:
5).return語(yǔ)句
return如果用表達(dá)式的執(zhí)行作為返回值,請(qǐng)把表達(dá)式和 return 放在同一行中,以免換行符被誤解析為語(yǔ)句的結(jié)束而引起返回錯(cuò)誤。return 關(guān)鍵字后若沒(méi)有返回表達(dá)式,則返回 undefined。構(gòu)造器的默認(rèn)返回值為 this。
示例:
3.命名
命名的方法通常有以下幾類(lèi):
a).命名法說(shuō)明
1).camel命名法,形如thisIsAnApple
2).pascal命名法,形如ThisIsAnApple
3).下劃線(xiàn)命名法,形如this_is_an_apple ·
4).中劃線(xiàn)命名法,形如this-is-an-apple
根據(jù)不同類(lèi)型的內(nèi)容,必須嚴(yán)格采用如下的命名法:
b).變量名:必須使用camel命名法
c).參數(shù)名:必須使用camel命名法
d).函數(shù)名:必須使用camel命名法
e).方法/屬性:必須使用camel命名法
f).私有(保護(hù))成員:必須以下劃線(xiàn)_開(kāi)頭
g).常量名:必須使用全部大寫(xiě)的下劃線(xiàn)命名法,如IS_DEBUG_ENABLED
h).類(lèi)名:必須使用pascal命名法
i).枚舉名:必須使用pascal命名法
j).枚舉的屬性:必須使用全部大寫(xiě)的下劃線(xiàn)命名法
k).命名空間:必須使用camel命名法
l).語(yǔ)義:命名同時(shí)還需要關(guān)注語(yǔ)義,如:
變量名應(yīng)當(dāng)使用名詞;
boolean類(lèi)型的應(yīng)當(dāng)使用is、has等起頭,表示其類(lèi)型;·
函數(shù)名應(yīng)當(dāng)用動(dòng)賓短語(yǔ);
類(lèi)名應(yīng)當(dāng)用名詞。
4.注釋
注釋要盡量簡(jiǎn)單,清晰明了。著重注釋的意思,對(duì)不太直觀的部分進(jìn)行注解:
(當(dāng)然這種直接定義一堆全局變量的做法不推薦)
此外,JavaScript 的注釋有兩種#34//#34 和#34/* .... */#34,建議#34//#34用作代碼行注釋?zhuān)?34/* .... */#34形式用作對(duì)整個(gè)代碼段的注銷(xiāo),或較正式的聲明中,如函數(shù)參數(shù)、功能、文件功能等的描述中:
另外:復(fù)制粘貼要注意注釋和代碼是否對(duì)應(yīng)。
發(fā)表聲明
1).變量聲明
雖然JavaScript語(yǔ)言不要求變量在使用前聲明。但是我們還是要養(yǎng)成這個(gè)好習(xí)慣。這樣更容易檢測(cè)到那些未聲明的變量,避免它們成為隱藏的全局變量,造成隱患。
在函數(shù)的開(kāi)頭,要用var關(guān)鍵字聲明函數(shù)中要用到的局部變量,要注明變量的作用和代表意義,并按字母順序排序。每個(gè)變量占據(jù)一個(gè)單獨(dú)的行來(lái)添加注釋。這是因?yàn)镴avaScript中只有函數(shù)的{}表示作用域,用var關(guān)鍵字聲明的局部變量只在函數(shù)內(nèi)有效,而沒(méi)有用var聲明的變量則被視為全局變量。示例:
用var聲明的變量valueA和未聲明的變量valueB之間存在差異。特別需要注意的是,函數(shù)中var聲明的變量是局部變量,可以有效避免局部變量和全局變量同名帶來(lái)的錯(cuò)誤。
2).函數(shù)的聲明
函數(shù)也要在調(diào)用之前聲明,內(nèi)部函數(shù)要在var聲明內(nèi)部變量的語(yǔ)句之后聲明,這樣可以清楚的顯示內(nèi)部變量和內(nèi)部函數(shù)的作用域。
另外,函數(shù)名緊接在左括號(hào)#39(#39)之間,右括號(hào)#39)#39和后面的#39{#39之間應(yīng)該有一個(gè)空格,以便清楚地顯示函數(shù)名及其參數(shù)部分和函數(shù)體的開(kāi)頭。如果函數(shù)是匿名/匿名的,在函數(shù)關(guān)鍵字和左括號(hào)#39(#39)之間留一個(gè)空格,否則可能會(huì)被誤認(rèn)為是函數(shù)的函數(shù)名。
內(nèi)部函數(shù)聲明示例:
從上面例子的輸出可以看出,inF()函數(shù)只在outF()函數(shù)內(nèi)部生效,局部變量innerA在內(nèi)部函數(shù)的作用域上生效。這種編碼方法使變量和函數(shù)的范圍變得清晰。