日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

最全面的前端開發(fā)指南

 明哥書館 2016-08-04


HTML


語義


HTML5為我們提供了很多旨在精確描述內(nèi)容的語義元素。確保你可以從它豐富的詞匯中獲益。



你需要理解你正在使用的元素的語義。用一種錯(cuò)誤的方式使用語義元素比保持中立更糟糕。


簡潔


保持代碼的簡潔。忘記原來的XHTML習(xí)慣。



可訪問性


可訪問性不應(yīng)該是以后再想的事情。提高網(wǎng)站不需要你成為一個(gè)WCAG專家,你完全可以通過修復(fù)一些小問題,從而造成一個(gè)巨大的變化,例如:

  • 學(xué)習(xí)正確使用alt 屬性

  • 確保鏈接和按鈕被同樣地標(biāo)記(不允許

  • 不專門依靠顏色來傳遞信息

  • 明確標(biāo)注表單控件



語言


當(dāng)定義語言和字符編碼是可選擇的時(shí)候,總是建議在文檔級別同時(shí)聲明,即使它們在你的HTTP標(biāo)頭已經(jīng)詳細(xì)說明。比任何其他字符編碼更偏愛UTF-8。



性能


除非有正當(dāng)理由才能在內(nèi)容前加載腳本,不要阻塞頁面的渲染。如果你的樣式表很重,開頭就孤立那些絕對需要得樣式,并在一個(gè)單獨(dú)的樣式表中推遲二次聲明的加載。兩個(gè)HTTP請求顯然比一個(gè)慢,但是感知速度是最重要的因素。




CSS


分號


雖然分號在技術(shù)上是CSS一個(gè)分隔符,但應(yīng)該始終把它作為一個(gè)終止符。


盒子模型對于整個(gè)文檔而言最好是相同的。全局性的* { box-sizing: border-box; }就非常不錯(cuò),但是不要改變默認(rèn)盒子模型的特定元素,如果可以避免的話。




不要更改元素的默認(rèn)行為,如果可以避免的話。元素盡可能地保持在自然的文檔流中。例如,刪除圖像下方的空格而不改變其默認(rèn)顯示:


同樣,如果可以避免的話,不要關(guān)閉元素流。


定位


在CSS中有許多定位元素的方法,但應(yīng)該盡量限制以下屬性/值。按優(yōu)先順序排列:



選擇器


最小化緊密耦合到DOM的選擇器。當(dāng)選擇器有多于3個(gè)結(jié)構(gòu)偽類,后代或兄弟選擇器的時(shí)候,考慮添加一個(gè)類到你想匹配的元素。

當(dāng)你不需要的時(shí)候避免過載選擇器。


特異性


不要讓值和選擇器難以覆蓋。盡量少用id,并避免!important。


覆蓋


覆蓋樣式使得選擇器和調(diào)試變得困難。如果可能的話,避免覆蓋樣式。




繼承


不要重復(fù)可以繼承的樣式聲明。


簡潔


保持代碼的簡潔。使用簡寫屬性,沒有必要的話,要避免使用多個(gè)屬性。


語言


英語表達(dá)優(yōu)于數(shù)學(xué)公式。



瀏覽器引擎前綴


果斷地刪除過時(shí)的瀏覽器引擎前綴。如果需要使用的話,可以在標(biāo)準(zhǔn)屬性前插入它們。



動(dòng)畫


視圖轉(zhuǎn)換優(yōu)于動(dòng)畫。除了opacity 和transform,避免動(dòng)畫其他屬性。



單位


可以的話,使用無單位的值。如果使用相對單位,那就用rem 。秒優(yōu)于毫秒。




顏色


如果你需要透明度,使用rgba。另外,始終使用十六進(jìn)制格式。



繪畫


當(dāng)資源很容易用CSS復(fù)制的時(shí)候,避免HTTP請求。



Hacks


不要使用Hacks。




JavaScript


性能


可讀性,正確性和可表達(dá)性優(yōu)于性能。JavaScript基本上永遠(yuǎn)不會(huì)是你的性能瓶頸。圖像壓縮,網(wǎng)絡(luò)接入和DOM重排來代替優(yōu)化。如果從本文中你只能記住一個(gè)指導(dǎo)原則,那么毫無疑問就是這一條。



無狀態(tài)


盡量保持函數(shù)純潔。理論上,所有函數(shù)都不會(huì)產(chǎn)生副作用,不會(huì)使用外部數(shù)據(jù),并且會(huì)返回新對象,而不是改變現(xiàn)有的對象。



本地化


盡可能地依賴本地方法。



強(qiáng)制性


如果強(qiáng)制有意義,那么就使用隱式強(qiáng)制。否則就應(yīng)該避免強(qiáng)制。



循環(huán)


不要使用循環(huán),因?yàn)樗鼈儠?huì)強(qiáng)迫你使用可變對象。依靠array.prototype 方法。

如果不能避免,或使用array.prototype 方法濫用了,那就使用遞歸。

這里有一個(gè)通用的循環(huán)功能,可以讓遞歸更容易使用。



參數(shù)


忘記arguments 對象。余下的參數(shù)往往是一個(gè)更好的選擇,這是因?yàn)椋?/span>

你可以從它的命名中更好地了解函數(shù)需要什么樣的參數(shù)

真實(shí)數(shù)組,更易于使用。



應(yīng)用


忘掉apply()。使用操作符。


綁定


當(dāng)有更慣用的做法時(shí),就不要用bind() 。



函數(shù)嵌套


沒有必要的話,就不要嵌套函數(shù)。



合成函數(shù)


避免調(diào)用多重嵌套函數(shù)。使用合成函數(shù)來替代。



緩存


緩存功能測試,大數(shù)據(jù)結(jié)構(gòu)和任何奢侈的操作。



變量


const 優(yōu)于let ,let 優(yōu)于var。



條件


IIFE 和return 語句優(yōu)于if, else if,else和switch語句。



對象迭代


如果可以的話,避免for…in。



map對象


在對象有合法用例的情況下,map通常是一個(gè)更好,更強(qiáng)大的選擇。



Curry


Curry雖然功能強(qiáng)大,但對于許多開發(fā)人員來說是一個(gè)外來的范式。不要濫用,因?yàn)槠湟暻闆r而定的用例相當(dāng)不尋常。


可讀性


不要用看似聰明的伎倆混淆代碼的意圖。



代碼重用


不要害怕創(chuàng)建小型的,高度可組合的,可重復(fù)使用的函數(shù)。



依賴性


最小化依賴性。第三方是你不知道的代碼。不要只是因?yàn)閹讉€(gè)可輕易復(fù)制的方法而加載整個(gè)庫:



原文鏈接:http://www./article/full-frontend-guidelines.html



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多