<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 代碼規范 [TOC=2,3] ## 文件路徑必須小寫 很多時候是在?`Windows`?或者?`Mac OSX`?系統下開發項目,但一般都部署?`Linux`?系統下。 在?`Windows`?和?`Mac`?系統下,文件路徑是不區分大小寫的,而?`Linux`?下是區分大小寫的。這樣很容易出現文件大小寫的問題導致開發環境下是好的,但上線后卻報錯了。 為了避免這種情況的發生,文件路徑盡量都使用小寫字符。并且在服務啟動時,ThinkJS 會檢測項目下文件路徑,如果有大寫字母則會告警,如: ~~~ [2015-10-13 10:36:59] [WARNING] filepath `admin/controller/apiBase.js` has uppercases. ~~~ ## 縮進使用 2 個空格 在 Node.js 環境下開發,有時候邏輯比較復雜,有各種條件判斷,或者有一些異步操作,這些都會增加代碼的縮進。 為了不至于讓縮進占用了太多的列寬,建議使用 2 個空格作為縮進。 ## 使用 ES6 語法開發 ES6 中有大量的語法糖可以簡化我們的代碼,讓代碼更加簡潔高效。 Node.js 最新版本已經較好的支持了 ES6 的語法,即使有些語法不支持,也可以通過 Babel 編譯來支持。 所以是時候使用 ES6 語法來開發項目了。 ## 不要使用 constrcutor 方法 使用 ES6 里的 class 來創建類的時候,可以使用?`constrcutor`?方法達到類實例化的時候自動調用。如: ~~~ export default class think.base { constructor(){ ... } } ~~~ 但如果不使用 ES6 里的 class,就沒有 constrcutor 方法了。 為了統一處理,ThinkJS 提供了?`init`?方法來代替?`constrcutor`?方法,該方法不管是在 class 下還是動態創建類的情況下都可以做到類實例化的時候自動被調用。 ~~~ export default class think.base { /** * 初始化方法,類實例化時自動被調用 * @return {} [] */ init(){ ... } } ~~~ `注:`?ThinkJS 里所有的類都會繼承?`think.base`?基類。 ## 使用 Babel 編譯 雖然現在的 Node.js 版本已經支持了很多 ES6 的特性,但這些特性現在還只是實現了,V8 里還沒有對這些特性進行優化。如:`*/yield`?等功能。 所以建議使用 Babel 來編譯,一方面可以使用 ES6 和 ES7 幾乎所有的特性,另一方面編譯后的性能也比默認支持的要高。 ## 使用 async/await 替代 */yield `*/yield`?是 ES6 里提出一種解決異步執行的方法,它只是一個過渡的方案,ES7 里便提出了?`async/await`?來代替它。 相對?`async/await`,`*/yield`?有以下的缺陷: 1、`*/yield`?調用后返回一個迭代器,需要借助第三方模塊來執行。如:`co` 2、`*/yield`?無法和 Arrow Function 一起使用。 3、`*/yield`?調用另一個?`*/yield`?時,需要使用?`yield *`,帶來不便。 4、目前 V8 對?`*/yield`?還沒有做優化,最好也通過 Babel 來編譯。 所以完全可以使用 ES7 里的?`async/await`?來代替?`*/yield`,然后使用 Babel 編譯來運行。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看