Ajax 板


LINE

Google JavaScript Style Guide http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml 我摘一些重點,理由請自己讀原文 @ 變數 一定要使用 var 定義 @ 常數 使用大寫字母、底線分隔 NAMES_LIKE_THIS 使用 @const 註解 @ 總是補上分號可以使用巢狀函式 (nested function) @ 不要在 block 內定義函式 如 if(check){ function test(){} } (註 block 不能定義 function 跟允許使用 nested function 沒有衝突, block 指的是除 function 以外的 {} 之間 ) @ 可以使用 exception ( try-catch) @ 可以使用自定義 exception (custom exception) ( throw ) @ Standards features 總是優先使用標準 feature @ 不要為標準資料型態建立包裝 (Wrapper objects for primitive types) 如用 Boolean 封裝 true, false ,像這個例子就會造成問題 var x = new Boolean(false); if (x) { alert('hi'); // Shows 'hi'. } @ 不建議使用多層的 prototype 繼承鏈 (Multi-level prototype hierarchies) (但可以用 google closure 的 goog.inherits ) @ 物件成員跟方法的定義 Method and property definitions 建構式定義方式 /** @constructor */ function Foo() { this.bar = value; } 成員定義方式建議使用 Foo.prototype.bar = function() { /* ... */ }; @ 刪除物件屬性 (delete) 建議使用 this.foo = null. 形式 用 Foo.prototype.dispose = function() { this.property_ = null; }; 但不要用 Foo.prototype.dispose = function() { delete this.property_; }; (因為前者效能比後者快很多) @ Closures 可以使用,但要小心 (memory leak issue) @ eval 只用在讀取程式碼、 REPL (Read–eval–print loop) @ with :不要使用 @ this :只在建構子或物件函式裡面使用 @ for-in loop : 只用來作為列出所有 object 裡面的 key 使用 (換言之,不能拿來 iterate 陣列) @ 不要拿 array 來當 object 用 @ 不要用多行字串表達式 Multiline string literals 不要用類似這種的表達法 var str= "line1 \ line2 \ line3 "; @ 使用陣列跟物件表達式 ([],{}) Array and Object literals 比起 new Array() 、建議使用 [] 比起 new Object() 、 建議使用 {} @ 不要修改內建物件的 prototype (Modifying prototypes of builtin objects) @ 不要使用 IE 專用判斷式(Internet Explorer's Conditional Comments) 不要用這種判斷式 /*@cc_on if(rule) { } */ @ 命名 一般來說,使用 functionNamesLikeThis, function 名稱首字小寫、駱駝式 variableNamesLikeThis, 變數名稱也是首字小寫 ClassNamesLikeThis, 類別名稱首字大寫 EnumNamesLikeThis, Enum 首字大寫 methodNamesLikeThis, method 首字小寫 CONSTANT_VALUES_LIKE_THIS, 常數全大寫、底線分隔 foo.namespaceNamesLikeThis.bar, namespace 首字小寫 filenameslikethis.js js 檔名全小寫 物件屬性與資料 private properties 的資料請用底線開頭 protected properties 資料不要用底線結尾(跟 public 一樣) /* .... 未完...下一篇待續 ....*/ -- 之間的世界,反抗軍啟蒙軍的交集 帶著 Android 去旅行、去發現 在身邊渾然不覺的 另一個世界。 全世界,都是我們的 足跡與遊樂場。 ~ The world around you is not what it seems. ~ http://ingress.tw --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.20.186
1F:推 mrbigmouth:javascript裡的protected scope是指? 10/30 13:12
2F:推 s540421:就是由closure存取區域變數吧? 10/30 13:16
3F:→ s540421:不過看文件內要提的應該是命名規則,沒強調變數的scope 10/30 13:20
4F:→ TonyQ:protected scope 指的是繼承體系下的 protected 10/30 13:37
5F:→ TonyQ:簡言之,就是讓子類別存取用的變數跟自己使用的變數 10/30 13:37
把 scope 修正為 properties ※ 編輯: TonyQ 來自: 61.230.20.186 (10/30 13:39)
6F:推 mrbigmouth:講properties我就懂了...scope是要怎麼設protected啊XD 10/30 15:07
7F:→ TonyQ:那是我在 java 世界的習慣講法啦 XD 10/30 15:45
9F:→ TonyQ:像這篇用的論述,把 member variable設成 protected/private 10/30 15:46
10F:→ TonyQ:不過在 javascript 裡面是有名無實就是了,只是標注他是 10/30 15:46
11F:→ TonyQ:private ,不是真的實質上能限制不給人存取,而是要說,你改 10/30 15:46
12F:→ TonyQ:了他我不會負責的,有種改就要有種收拾。XD 10/30 15:46
※ 編輯: TonyQ 來自: 61.230.20.186 (10/30 15:47)
13F:推 mrbigmouth:javascript可以靠closures弄出private效果啦...雖然基 10/30 15:48
14F:→ mrbigmouth:本上不會這樣弄....(把method都放closure裡面) 10/30 15:49
15F:→ Rplus:推 11/01 02:34
16F:推 lovdkkkk:推 不過命名那邊 method 跟 function 的差異是? 11/01 08:37
17F:推 mrbigmouth:method是指掛在物件上的方法 function不是 11/01 09:26
18F:→ mrbigmouth:舉例來說 array.forEach是method alert是function 11/01 09:26
19F:推 lovdkkkk:原來如此 @@ 11/01 09:43
20F:推 mrbigmouth:因為js的fn可以亂綁this 這定義可以再嚴一點 11/01 09:50
21F:→ mrbigmouth:function裡有用到this且會因this有變化的才叫method 11/01 09:51
22F:→ TonyQ:上面這個定義太糊了 就意義上的 member function 就行了 11/01 11:22
23F:推 mrbigmouth:嗯 我說的再嚴一點是我個人的理解 一般論就是我一開始 11/01 14:14
24F:→ mrbigmouth:講的掛在物件上的都算 11/01 14:14
25F:推 davidsky:alert 也是掛在 window 下面啊= =|| 11/05 19:39
26F:推 mrbigmouth:掛在根物件上的不算吧 11/05 21:21
27F:推 xxxx9659: 推 01/09 15:25







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP