<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] # 第3章JavaScript的本質 JavaScript的性質可以總結如下: **它是動態的** 許多事情可以改變。例如,您可以在創建對象后自由添加和刪除對象的屬性(字段)。您可以直接創建對象,而不必先創建對象工廠(例如,類)。 **它是動態類型的** 變量和對象屬性可以始終保存任何類型的值。 **它的功能和面向對象** JavaScript支持兩種編程語言范例:函數式編程(一等函數、閉包、 通過`bind()`、內置`map()`和`reduce()`等的部分應用程序數組等)和面向對象編程(可變狀態,對象,繼承等)。 **它默默地失敗** 在 ECMAScript 3 之前,JavaScript 沒有異常處理。這就解釋了為什么語言經常會靜默地自動轉換參數和操作數的值:它最初不能拋出異常。 **它被部署為源代碼** JavaScript 始終作為源代碼部署,并由 JavaScript 引擎編譯。源代碼具有靈活的交付格式和抽象引擎之間的差異的好處。使用兩種技術來保持文件大小:壓縮(主要是gzip)和縮小(通過重命名變量,刪除注釋等,使源代碼更小;詳見第32章)。 **它是Web平臺的一部分** JavaScript 是 Web 平臺(HTML5 API,DOM等)的重要部分,很容易忘記,前者也可以在沒有后者的情況下使用。然而,在非瀏覽器設置(如 Node.js)中使用的 JavaScript 越多,變得越明顯。 ## 古怪和非官方特性 一方面,JavaScript有幾個怪癖和缺少的功能(例如,它沒有塊范圍的變量,沒有內置的模塊,并且不支持子類化)。因此,您在哪里學習其他語言的語言功能,您將學習 JavaScript 中的模式和解決方法。另一方面,JavaScript 包括非正統特征(如原型繼承和對象屬性)。這些也必須被學習,但是比 bug 更有特色。 請注意,JavaScript 引擎已經變得非常聰明,并修復了一些怪癖。例如: * 規范性地,JavaScript 沒有整數,只有浮點數。在內部,大多數引擎盡可能地使用整數。 * 可以說,JavaScript 中的數組太靈活了:它們不是索引的元素序列,而是從數字到元素的映射。這樣的地圖可以有空格:數組中沒有關聯值的索引“inside”。再次,如果陣列沒有孔,引擎可以幫助使用優化的表示。 ## 優雅部分 但JavaScript也有很多 優雅的部分。Brendan Eich的最愛是:[ 3 ] * First-class functions (一等函數) * Closures(閉包) * Prototypes(原型) * Object literals(對象字面量) * Array literals(數組字面量) 最后兩個項目,對象文字和數組文字,讓您從對象開始,然后介紹抽象(如構造函數,JavaScript的類似于類)。他們還啟用JSON(參見[第22章](###))。 請注意,優雅的部分可以幫助您解決問題。例如,它們允許您實現塊級作用域,模塊和繼承API - 所有這些語言。 ## 影響 JavaScript是受幾種編程語言的影響(如下圖所示): ![JavaScript的基于這些編程語言](https://box.kancloud.cn/7319c47853076980b3f91e340f886800_993x646.png) * Java 是 JavaScript 語法的角色模型。它還導致 JavaScript 將值分割為基元和對象以及 Date 構造函數(它是一個端口java.util.Date)。 * AWK 啟發了JavaScript 的函數。其實關鍵字 function 來自 AWK。 * Scheme 是JavaScript具有一等函數的原因(它們被當作值對待,可以作為函數的參數傳遞)和閉包(參見[第16章](###))。 * Self 影響了JavaScript與眾不同的面向對象的風格; 它支持對象之間的原型繼承。 * Perl 和 Python 影響了 JavaScript 對字符串,數組和正則表達式的處理。 * 除了實際的語言之外,HyperTalk 還影響了JavaScript 是如何集成到web瀏覽器中的。它導致了具有事件處理屬性的 HTML 標記,例如 onclick。 *** [ 3 ] Brendan Eich,“JavaScript簡史”,2010年7月21日,http://bit.ly/1lKkI0M。
                  <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>

                              哎呀哎呀视频在线观看