精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

從谷歌的JavaScript編寫風格中,13 點值得我們注意的!

開發 前端
對于那些還不熟悉JavaScript的編寫風格的人,谷歌提供了編寫JavaScript的編寫風格指南,谷歌風格指南 其中列出了編寫干凈、可理解代碼的最佳風格實踐。

 

對于那些還不熟悉JavaScript的編寫風格的人,谷歌提供了編寫JavaScript的編寫風格指南,谷歌風格指南 其中列出了編寫干凈、可理解代碼的***風格實踐。

對于編寫有效的JavaScript來說,這些并不是硬性的、快速的規則,而只是在源文件中維護一致的、吸引人的樣式選擇的規則。這對于JavaScript來說尤其有趣,它是一種靈活且多變的語言,允許多種風格的選擇。

谷歌和Airbnb有兩個***的編寫風格指南。如果我的工作是花費大量時間編寫JS,那么可以先學習這兩種方法。

以下是谷歌JS風格指南中我認為最有趣和相關的13條規則:

谷歌JS風格指南處理各種各樣的問題,從激烈爭論的問題(制表符與空格的比較,以及分號應該如何使用這個有爭議的問題),到一些更模糊的規范,這些規范令我吃驚,它們肯定會改變我以后寫JS的方式。

對于每個規則,我將對規范進行總結,然后引用樣式指南中的支持部分,詳細描述該規則。在適用的情況下,我還將提供實踐中的樣式示例,并將其與不遵循規則的代碼進行對比。

使用空格,而不是制表符

除了行結束符序列之外,ASCII水平空格字符(0x20)是源文件中出現在任何位置的惟一空格字符。這意味著…制表符不用于縮進

使用兩個空格(而不是四個)進行縮進 

  1. // bad  

  2. function foo() {  

  3. ∙∙∙∙let name;  

  4.  

  5. // bad  

  6. function bar() {  

  7. ∙let name;  

  8.  

  9. // good  

  10. function baz() {  

  11. ∙∙let name;  

分號是必需的

每個語句必須以分號結束,禁止依靠自動分號插入。

雖然無法想象為什么會有人反對這個想法,但JS中分號的一致使用正在成為新的“空格對制表符”的爭論。谷歌一慣建議結束需要使用分號。 

  1. // bad  

  2. let luke = {}  

  3. let leia = {}  

  4. [luke, leia].forEach(jedi => jedi.father = 'vader' 

  5. // good  

  6. let luke = {};  

  7. let leia = {};  

  8. [luke, leia].forEach((jedi) => {  

  9.   jedi.father = 'vader' 

  10. }); 

不要使用ES6模塊

不要使用ES6模塊(即導出和導入關鍵字),因為它們的語義還沒有最終確定。注意,一旦語義完全標準,將重新定義使用的方式。 

  1. // 先別做這種事  

  2. //------ lib.js ------  

  3. export function square(x) {  

  4.     return x * x;  

  5.  

  6. export function diag(x, y) {  

  7.     return sqrt(square(x) + square(y));  

  8.  

  9. //------ main.js ------  

  10. import { square, diag } from 'lib'; 

不鼓勵(但不禁止)水平對齊

這種做法是允許的,但谷歌編寫風格通常不鼓勵這樣做,甚至不需要在已經使用它的地方保持水平對齊。

水平對齊是在代碼中添加可變數量的額外空格,以使某行變量的值與前面變量值對齊。 

  1. // bad  

  2.  

  3.   tiny:   42,    

  4.   longer: 435,   

  5. };  

  6. // good  

  7.  

  8.   tiny: 42,   

  9.   longer: 435,  

  10. }; 

不要再使用var了

使用const或let聲明所有本地變量來代替 var。默認情況下使用 const,除非需要重新分配變量在使用 let 聲明。 

  1. // bad  

  2. var example = 42 

  3. // good  

  4. let example = 42

箭頭函數是***

箭頭函數提供了簡潔的語法,并解決了this 在函數中不確定性的一些問題,與function關鍵字相比,更喜歡箭頭函數,特別是對于嵌套函數。

老實說,我只是覺得箭頭函數很棒因為它們更簡潔,更美觀。事實證明,它們還有一個非常重要的用途。 

  1. // bad  

  2. [1, 2, 3].map(function (x) {  

  3.   const y = x + 1;  

  4.   return x * y;  

  5. });  

  6. // good  

  7. [1, 2, 3].map((x) => {  

  8.   const y = x + 1;  

  9.   return x * y;  

  10. }); 

使用模板字符串而不是拼接客串

在復雜的字符串連接上使用模板字符串(用`分隔),特別是在涉及多個字符串文本時,模板字符串可以跨越多行。 

  1. // bad  

  2. function sayHi(name) {  

  3.   return 'How are you, ' + name + '?';  

  4.  

  5. // bad  

  6. function sayHi(name) {  

  7.   return ['How are you, ', name, '?'].join();  

  8.  

  9. // bad  

  10. function sayHi(name) {  

  11.   return `How are you, ${ name }?`;  

  12.  

  13. // good  

  14. function sayHi(name) {  

  15.   return `How are you, ${name}?`;  

不要對長字符串使用 \ 來表示連續

不要在普通或模板字符串文字中使用連續行(也就是說,在字符串文字中以反斜杠結束一行)。盡管ES5允許這樣做,但是如果斜杠后面有任何尾隨空格,那么可能會導致一些棘手的錯誤,而且對讀者來說不太明顯。

有趣的是,谷歌和Airbnb不同意這個規則(這是Airbnb的規范)。

雖然谷歌建議連接更長的字符串(如下所示),Airbnb的風格指南基本上建議什么也不做,并允許長字符串繼續,只要他們需要。 

  1. // bad (sorry, this doesn't show up well on mobile)  

  2. const longString = 'This is a very long string that \  

  3.     far exceeds the 80 column limit. It unfortunately \  

  4.     contains long stretches of spaces due to how the \  

  5.     continued lines are indented.';  

  6.  

  7. // good  

  8. const longString = 'This is a very long string that ' +   

  9.     'far exceeds the 80 column limit. It does not contain ' +   

  10.     'long stretches of spaces since the concatenated ' +  

  11.     'strings are cleaner.'; 

for…of是for循環的***類型

使用ES6,該語言現在有三種不同的for循環。所有的循環都可以使用,但是如果可能的話,for-of循環應該是***的。

如果您問我,這是一個奇怪的問題,但是我認為我應該包含它,因為谷歌聲明了一種***的for循環類型,這非常有趣。

我總覺得 for...in 循環對于對象更好,而對于for...of 的更適合數組,不同場景可以使用不同方式。

雖然這里的Google規范不一定與這個想法相矛盾,但是了解他們特別喜歡這個循環還是很有趣的。

不要使用eval()

不要使用eval或function(…string)構造函數(代碼加載器除外)。這些特性具有潛在的危險,而且在CSP環境中根本不起作用

MDN 頁面的eval()中,甚至有一個名為“不要使用eval!” 

  1. // bad  

  2. let obj = { a: 20, b: 30 };  

  3. let propName = getPropName();  // returns "a" or "b"  

  4. eval( 'var result = obj.' + propName );  

  5. // good  

  6. let obj = { a: 20, b: 30 };  

  7. let propName = getPropName();  // returns "a" or "b"  

  8. let result = obj[ propName ];  //  obj[ "a" ] is the same as obj.a 

常量應該用全大寫字母命名,用下劃線分隔

常量名稱使用CONSTANT_CASE的格式:所有大寫字母,單詞由下劃線分隔。

如果您絕對確信某個變量不應該更改,那么可以通過將該常量的名稱大寫來表示。這使得在整個代碼中使用該常量時,它的不變性非常明顯。

一個值得注意的例外是,如果常量是函數作用域的。在這種情況下,應該用camelCase來寫。 

  1. // bad  

  2. const number = 5 

  3. // good  

  4. const NUMBER = 5

每次聲明一個變量

每個局部變量聲明只聲明一個變量:聲明如令a = 1, b = 2,不推薦。 

  1. // bad  

  2. let a = 1b = 2c = 3 

  3. // good  

  4. let a = 1 

  5. let b = 2 

  6. let c = 3

使用單引號,而不是雙引號

普通的字符串用單引號(')分隔,而不是雙引號(")。

提示:如果字符串包含單引號字符,可以考慮使用模板字符串來避免轉義引號。 

  1. // bad  

  2. let directive = "No identification of self or mission."  

  3. // bad  

  4. let saying = 'Say it ain\u0027t so.' 

  5. // good  

  6. let directive = 'No identification of self or mission.' 

  7. // good  

  8. let saying = `Say it ain't so`; 

***一個注意

正如我在開始時所說,這些不是強制要求。谷歌只是眾多科技巨頭之一,這些只是推薦。

也就是說,看看谷歌這樣的公司提出的風格建議是很有趣的,這家公司雇傭了很多才華橫溢的人,他們花了很多時間編寫優秀的代碼。

如果你想要遵循“符合谷歌的源代碼”的指導原則,那么你可以遵循這些規則—但是,當然,許多人不同意這些規則,你可以隨意忽略這些規則中的任何一個或所有規則。

我個人認為在很多情況下Airbnb的規范比谷歌更有吸引力。無論您對這些特定的規則采取何種立場,在編寫任何類型的代碼時,始終牢記風格一致性仍然很重要。 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2011-10-09 10:43:00

2019-07-19 10:08:49

iOS應用系統

2012-05-28 09:34:33

Linux Mint UbuntOS

2011-03-15 13:45:49

JavaScript后續傳遞

2010-05-20 17:31:17

MySQL數據庫

2015-10-08 09:25:05

比特幣存儲開源

2013-04-26 13:42:17

游戲

2010-07-21 16:28:33

職場

2021-06-28 13:20:15

谷歌AI芯片

2021-04-02 12:37:53

RestfulAPI接口架構

2009-02-01 14:34:26

PythonUnix管道風格

2024-12-19 07:51:50

NacosAPI 接口三方調用

2020-11-11 18:56:32

工具代碼開發

2017-07-27 16:31:11

2024-02-19 00:12:00

模型數據

2014-05-16 10:04:19

JavaScriptthis原理

2013-08-05 16:51:31

創新科技關注

2010-04-29 12:32:30

Unix服務器

2010-07-08 17:33:21

SQL Server數

2010-08-31 16:39:56

點贊
收藏

51CTO技術棧公眾號

日韩精品手机在线观看| 国产欧美在线看| 爱爱免费小视频| 国语自产精品视频在线看抢先版结局| 亚洲欧美日韩久久精品| 国产在线一区二区三区播放| 波多野结衣视频网址| 欧美不卡视频| 亚洲人成电影网| 无套白嫩进入乌克兰美女| 狼人综合视频| 亚洲欧美区自拍先锋| 免费成人av网站| www.av在线.com| 爽好多水快深点欧美视频| 日韩视频免费看| 疯狂揉花蒂控制高潮h| 久久久久毛片| 欧美视频专区一二在线观看| 亚洲人成人77777线观看| 色丁香婷婷综合久久| 国模娜娜一区二区三区| 国产精品69久久| 亚洲黄色三级视频| 中文av一区| 中文字幕亚洲欧美一区二区三区| 好男人香蕉影院| 久久久久久久久成人| 欧美视频自拍偷拍| 国产精品99久久免费黑人人妻| 日韩精品卡一| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩亚洲在线| 天堂中文在线观看视频| 国产精品一区在线观看乱码 | 婷婷丁香综合网| 亚洲ab电影| 亚洲精品99久久久久中文字幕| 国产一级免费大片| 日韩一级特黄| 欧美高清性hdvideosex| 日日干夜夜操s8| 素人一区二区三区| 91久久精品日日躁夜夜躁欧美| 午夜精品久久久久久久无码| 福利写真视频网站在线| 亚洲午夜免费福利视频| 国产在线视频综合| 性欧美高清come| 亚洲欧美乱综合| 91免费国产精品| 性网站在线观看| 亚洲午夜激情网页| 国产婷婷一区二区三区| 国产色播av在线| 欧美日韩在线一区| 国产性xxxx18免费观看视频| 神马久久午夜| 色婷婷精品大在线视频| 成人中文字幕av| 国产精品一区二区免费福利视频| 欧美日韩一区高清| 亚洲欧美天堂在线| 77成人影视| 亚洲精品福利资源站| 亚洲综合自拍网| 国产一区国产二区国产三区| 在线日韩精品视频| 久久免费看少妇高潮v片特黄| 91精品动漫在线观看| 九色精品免费永久在线| 亚欧洲精品在线视频| 亚洲欧美大片| 国产日韩av在线| 精品国产va久久久久久久| 成人18视频日本| 日本一区免费| 免费a级在线播放| 亚洲午夜一二三区视频| 久久精品一区二| 国产一区一区| 日韩精品高清在线观看| 特黄一区二区三区| 韩国在线视频一区| 国产高清在线不卡| h片在线免费看| 99精品在线观看视频| 亚洲高清精品中出| 国产在线xxx| 欧日韩精品视频| 欧美午夜精品一区二区| 国产不卡一区| 欧美黑人极品猛少妇色xxxxx| av毛片在线免费观看| 国产美女在线精品| 欧美日韩天天操| 青草视频在线免费直播| 色噜噜狠狠成人中文综合| 特黄特黄一级片| 国产成人ay| 亚州精品天堂中文字幕| 亚洲熟女乱色一区二区三区久久久 | 日本精品999| 国产精品视频一二三| 日韩一级片免费视频| 成人国产一区二区三区精品麻豆| 精品国产一区久久| 天堂а√在线中文在线鲁大师| 亚洲精品三级| 亚洲最大激情中文字幕| 成人影视在线播放| 亚洲国产综合人成综合网站| 亚洲天堂2018av| 最新亚洲精品| 午夜精品在线视频| 国产美女精品视频国产| 国产亚洲综合在线| 免费看国产曰批40分钟| 日本一区二区三区电影免费观看| 国产一区二区三区三区在线观看| 日产欧产va高清| 国产精品88av| 男插女免费视频| yy6080久久伦理一区二区| 日韩av在线导航| 国产午夜久久久| 国产麻豆视频一区| 亚洲一卡二卡三卡| 先锋欧美三级| 一本色道久久88综合亚洲精品ⅰ| 六月丁香在线视频| av电影天堂一区二区在线| 99国内精品久久久久久久| 精品女同一区二区| 亚洲天堂一级片| 蓝色福利精品导航| 亚洲第一综合| 日韩av懂色| 中文字幕亚洲专区| 中文字幕第三页| 国产午夜亚洲精品羞羞网站| 成人黄色片视频| 亚洲精品一级二级三级| 55夜色66夜色国产精品视频 | 日本精品裸体写真集在线观看| 亚洲国产又黄又爽女人高潮的| 久草成人在线视频| 成人免费观看视频| 人妻av中文系列| 秋霞影院一区二区三区| 欧美在线观看一区二区三区| 午夜一区在线观看| 色婷婷亚洲精品| 91麻豆精品国产91久久综合| 免费人成黄页网站在线一区二区| 午夜老司机精品| 婷婷精品久久久久久久久久不卡| 久久综合免费视频| 午夜免费福利视频| 亚洲大片一区二区三区| 国产麻豆xxxvideo实拍| 久久人人97超碰国产公开结果| 欧美在线激情| 亚洲91在线| 欧美激情a∨在线视频播放| 日本xxxxxwwwww| 色综合天天做天天爱| 亚洲黄色小说视频| 久久99久久99精品免视看婷婷| 天堂av免费看| 清纯唯美亚洲经典中文字幕| 国产精品1234| 深夜国产在线播放| 日韩精品欧美国产精品忘忧草| 91在线视频免费播放| 国产精品理论片在线观看| 欧美体内she精高潮| 国产欧美丝祙| 亚洲亚洲精品三区日韩精品在线视频| 久久99成人| 97在线日本国产| av在线天堂播放| 精品国精品国产| 天堂网一区二区| 一区二区三区在线免费观看| 色噜噜在线观看| 九九国产精品视频| 国产一区二区在线视频播放| 日韩免费视频| 精品无人乱码一区二区三区的优势| 欧美va视频| 久久久亚洲国产| 午夜精品一区| 日韩av在线电影网| a级片免费视频| 在线亚洲免费视频| 日本少妇激情舌吻| 亚洲欧美日韩在线播放| 国产精品成人一区二区三区电影毛片| 九色|91porny| 国产裸体免费无遮挡| 伊人久久亚洲热| 免费看av软件| 国产精品亚洲人成在99www| 国产福利久久精品| 欧美成人黄色| 日本视频久久久| 国产蜜臀av在线播放| 最新中文字幕亚洲| 免费成人av电影| 精品久久久久99| av中文字幕免费在线观看| 欧美在线999| 久久国产黄色片| 亚洲午夜一区二区三区| √天堂中文官网8在线| 国产欧美一区二区精品久导航| av免费观看不卡| 国产精品99久久久| 亚洲一二三av| 久久99这里只有精品| 久久久久免费精品| 亚洲国产mv| www.一区二区.com| 亚洲精品二区三区| 一区二区免费电影| 精品精品99| 欧美一区二区综合| 久久不卡国产精品一区二区| 国产欧美亚洲日本| 国产精品1luya在线播放| 91日本视频在线| 24小时成人在线视频| 国产精品久久在线观看| 91精品韩国| 国产精品www色诱视频| 黄色综合网址| 日本精品视频网站| 色综合亚洲图丝熟| 日本精品久久电影| 国产不卡网站| 日本精品久久久久久久| 日韩精品一区二区三区| 国产不卡av在线免费观看| 欧洲av不卡| 国产精品情侣自拍| 四虎国产精品免费久久| 91网在线免费观看| 亚洲一级大片| 国产免费一区二区| 久久九九热re6这里有精品| 国产综合18久久久久久| 色狼人综合干| 日本一区视频在线| 久久精品国产亚洲夜色av网站| 亚洲三区在线| 欧美日韩国产免费观看| 久无码久无码av无码| 99精品国产福利在线观看免费| 伊人成色综合网| 久久精品30| 国产91色在线观看| 国产尤物一区二区| 美女网站视频在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 国产熟妇搡bbbb搡bbbb| 国产人成一区二区三区影院| 久草手机视频在线观看| 一区二区三区四区不卡视频| 亚洲国产综合久久| 91久久线看在观草草青青 | 欧美电影精品一区二区| 神马一区二区三区| 一本一本久久a久久精品综合小说 一本一本久久a久久精品牛牛影视 | 热久久国产精品| 天天操精品视频| av亚洲产国偷v产偷v自拍| 中文字幕免费高清| 亚洲女女做受ⅹxx高潮| 草久视频在线观看| 欧美日韩精品系列| 国精产品一品二品国精品69xx| 日韩成人性视频| 黄色在线免费看| 欧美有码在线观看| 成人永久在线| 久久精品国产精品国产精品污 | 精品视频一二区| 久久精品99久久久久久久久 | 牛夜精品久久久久久久99黑人| 久久精品视频16| 久久国产精品免费| 欲求不满的岳中文字幕| 最好看的中文字幕久久| www.毛片.com| 欧美二区三区91| 色网站免费观看| 中文字幕国产日韩| 91制片在线观看| 成人av电影天堂| 中文字幕伦av一区二区邻居| 中文字幕第50页| 日韩不卡一二三区| 欧亚乱熟女一区二区在线| 日韩美女视频一区二区| 亚洲熟妇无码乱子av电影| 日韩欧美美女一区二区三区| 东热在线免费视频| 国产91精品不卡视频| 亚洲成人偷拍| 一区精品视频| 青娱乐精品视频| 亚洲成人日韩在线| 亚洲国产婷婷综合在线精品| 国产又大又黑又粗| 亚洲香蕉成视频在线观看 | 你懂的国产精品| 99草草国产熟女视频在线| www.成人网.com| 欧美日韩在线视频免费| 欧美日韩精品欧美日韩精品一| 九九热视频在线观看| 午夜精品理论片| 日韩欧美中文在线观看| 在线观看日韩片| 青青草国产精品97视觉盛宴| 日本黄色网址大全| 午夜精品一区二区三区免费视频 | 日韩中文字幕精品| 无人区在线高清完整免费版 一区二| 国产一区二区精品免费| 国模吧视频一区| av漫画在线观看| 亚洲国产精品一区二区久久恐怖片 | 免费电影日韩网站| 鲁鲁狠狠狠7777一区二区| 一区二区国产精品| 懂色av粉嫩av蜜乳av| 黄色一区二区在线观看| 天堂在线视频免费观看| 91精品国产乱码久久久久久蜜臀| 粉嫩精品导航导航| cao在线观看| av亚洲精华国产精华精华| 亚洲精品国产精品乱码| 日韩激情第一页| 欧美美女日韩| 色狠狠久久av五月综合| 美女一区二区久久| 亚洲一区电影在线观看| 在线播放中文字幕一区| 久久久久久久久免费视频| 国产欧美一区二区三区在线看| 99久久.com| 性鲍视频在线观看| 一区二区在线观看不卡| 老司机午夜福利视频| 97色在线观看免费视频| 亚洲区小说区| www亚洲成人| 亚洲黄网站在线观看| 人妻丰满熟妇av无码区hd| 欧美一级黑人aaaaaaa做受| 国产99久久| 国产精欧美一区二区三区白种人| 一区二区三区四区蜜桃| 婷婷五月综合激情| 日本精品久久电影| 91综合久久| 免费不卡的av| 日韩欧美在线中文字幕| 在线免费看黄| 99re视频在线播放| 午夜一级在线看亚洲| 成人18视频免费69| 日韩精品中文字幕一区| 亚洲天堂手机| 在线一区日本视频| av一本久道久久综合久久鬼色| 中文字幕一区二区人妻视频| 久久精品99久久久香蕉| 欧美成a人免费观看久久| 一区二区三区免费播放| 亚洲黄色在线视频| 成人欧美亚洲| 亚洲www永久成人夜色| 国产情侣一区| 51精品免费网站| 亚洲免费小视频| 日韩欧美另类中文字幕| 欧美两根一起进3p做受视频| 亚洲色图都市小说| 久久久久久女乱国产| 亚洲一区久久久| 日韩av电影免费观看高清完整版| 欧美丰满艳妇bbwbbw| 亚洲色图15p| youjizzjizz亚洲| 色综合色综合色综合色综合| 午夜日韩在线电影|