国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

關于Google發布的JavaScript代碼規范你要知道哪些

2024-05-06 15:20:12
字體:
來源:轉載
供稿:網友

Google為了那些還不熟悉代碼規范的人發布了一個JS代碼規范。其中列出了編寫簡潔易懂的代碼所應該做的最佳實踐。

代碼規范并不是一種編寫正確JavaScript代碼的規則,而是為了保持源代碼編寫模式一致的一種選擇。對于JavaScript語言尤其如此,因為它靈活并且約束較少,允許開發者使用許多不同的編碼樣式。

Google和Airbnb各自占據著當前最流行的編碼規范的半壁江山。如果你會在編寫JS代碼上投入很長時間的話,我強烈推薦你通讀一遍這兩家公司的編碼規范。

接下來要寫的是我個人認為在Google的代碼規范中,與日常開發密切相關的十三條規則。

它們處理的問題都非常具有爭議性,包括tab與空格、是否強制使用分號等等。還有一些令我感到驚訝的規則,往往最后都改變了我編寫JS代碼的習慣。

對于每一條規則,我都會先給出規范的摘要,然后引用規范中的詳細說明。我還會舉一些適當的反例論證遵守這些規則的重要性。

使用空格代替tab

除了每一行的終止符序列,ASCII水平空格符(0x20)是唯一一個可以出現在源文件中任意位置的空格字符。這也意味著,tab字符不應該被使用,以及被用來控制縮進。

規范隨后指出應該使用2個,而不是4個空格帶實現縮進。

// badfunction foo() {∙∙∙∙let name;}// badfunction bar() {∙let name;}// goodfunction baz() {∙∙let name;}

不能省略分號

每個語句必須以分號結尾。不允許依賴于JS自動添加分號的功能。

盡管我不明白為什么會有人反對這個規則,但目前分號的使用問題顯然已經像“空格 vs tab”這個問題一樣產生了巨大的爭議。而Google對此表示分號是必須的,是不可省略的。

// badlet luke = {}let leia = {}[luke, leia].forEach(jedi => jedi.father = 'vader')// goodlet luke = {};let leia = {};[luke, leia].forEach((jedi) => { jedi.father = 'vader';});

暫時不要使用ES6 module

由于ES6模塊的語義尚不完全確定,所以暫時不要使用,比如export和import關鍵字。一旦它們的相關規范制定完成,那么請忽略這一條規則。

// 暫時不要編寫下面的代碼://------ lib.js ------export function square(x) {  return x * x;}export function diag(x, y) {  return sqrt(square(x) + square(y));}//------ main.js ------import { square, diag } from 'lib';

譯者注:感覺遵守這條規范不大現實,畢竟現在已經有babel了。而且使用React時,最佳實踐就是使用ES6模塊吧。

不推薦代碼水平對齊

Google的代碼規范允許但不推薦對代碼進行水平對齊。即使之前的代碼中做了水平對齊的處理,以后也應該避免這種行為。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 襄汾县| 彰武县| 长宁县| 正阳县| 漾濞| 乌兰浩特市| 饶平县| 周宁县| 尼勒克县| 秦安县| 礼泉县| 湘潭市| 札达县| 阿合奇县| 马山县| 凌源市| 区。| 毕节市| 新宁县| 新安县| 霍林郭勒市| 库车县| 五华县| 清徐县| 临清市| 八宿县| 开原市| 太原市| 鄂托克旗| 顺昌县| 长泰县| 布拖县| 岑巩县| 普格县| 阿巴嘎旗| 株洲县| 会东县| 红河县| 红桥区| 呼伦贝尔市| 尖扎县|