整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          JavaScript的執行環境及作用域

          JavaScript的執行環境及作用域

          、執行環境

          執行環境(execution context)是JavaScript中最為重要的一個概念。執行環境定義了執行環境有權訪問的變量和函數。每個執行環境都有一個與之關聯的變量對象(varibale object),環境中定義的所有變量或函數都保存在這個對象中。雖然我們編寫的代碼無法訪問這個對象,但解析器在處理數據時會在后臺使用它。

          全局執行環境是最外圍的一個執行環境。根據ECMAScript實現所在的宿主環境不同,表示執行環境的對象也不一樣。在Web瀏覽器中,全局執行環境被認為是window對象,因此所有全局變量和函數都是作為window對象的屬性和方法創建的。某個執行環境中的所有代碼執行完畢后,該環境銷毀,保存在其中的所有變量和函數定義也隨之銷毀(全局執行環境直到應用程序退出—例如關閉網頁或瀏覽器—時才會被銷毀)。

          每個函數都有自己的執行環境。但執行流進入一個函數時,函數的環境就會被推入一個環境棧中。而在函數執行之后,棧將其環境彈出,把控制權返回給之前的執行環境。ECMAScript程序中的執行流正式由這個方便的機制控制著。

          二、作用域鏈

          當代碼在一個環境中執行時,會創建變量對象的一個作用域鏈。作用域鏈的用途,是保證對執行環境有權訪問的所有變量和函數的有序訪問。作用域鏈的前端,始終是當前執行的代碼所在環境的變量對象。

          如果這個環境是函數,則將其活動對象(activation object)作為變量對象。活動對象在最開始時只包含一個變量,即arguments對象(這個對象在全局環境中是不存在的)。作用域鏈中的下一個變量對象來自包含(外部)環境,而再下一個變量對象則來自下一個包含環境。這樣,一直延續到全局執行環境,全局執行環境的變量對象始終都是作用域鏈中的最后一個對象。

          標識符解析是沿著作用域鏈一級一級地搜索標識符的過程。搜索過程始終從作用域鏈的前端開始,然后逐漸地向后回溯,直到找到標識符為止(如果找不到標識符,通常會導致錯誤發生)。

          var color="blue";
          function changeColor(){
           var anotherColor="red";
           
           function swapColors(){
           var tempColor=anotherColor;
           anotherColor=color;
           color=tempColor;
           //這里可以訪問color、anotherColor和tempColor
           }
           //這里可以訪問color和anotherColor,但不能訪問tempColor
           swapColors();
          }
          //這里只能訪問color
          changeColor();
          

          以上代碼共涉及3個執行環境:全局環境、changeColor()的局部環境和swapColors()的局部環境。對于例子中的swapColors()而言,其作用域鏈中包含3個對象:swapColors()的變量對象、changeColor()的變量對象和全局對象。

          內部環境可以通過作用域鏈訪問所有的外部環境,但外部環境不能訪問內部環境中的任何變量和函數。這些環境之間的聯系是線性、有次序的。每個環境可以向上搜索作用域鏈,以查詢變量和函數名,但任何環境都不能通過向下搜索作用域鏈而進入另一個執行環境。

          tml開發環境搭建

          有一個好的編輯器我們可以方便地的開發項目,編寫代碼,配置和管理我們的項目。所以我們開始編寫html代碼之前需要搭建開發環境。

          基于html項目的開發和代碼編寫現在網上有很多編輯器,也有免費的,也有收費的編輯器。基于在Windows系統環境下開發和編寫html代碼最簡單的編輯器就是Windows自帶的記事本,我們可以使用記事本編輯html代碼。

          使用記事本編寫html的步驟是首先新建一個文本文檔,按照html的語法規則編寫相關的代碼和保存文件,然后把文件的后綴名改為.html,使用電腦上的瀏覽器打開就可以查看我們代碼的運行結果。

          雖然記事本也能編寫html代碼,但是效率不高也不方便,所以我們使用專業的編輯器來開發項目,編寫代碼和管理項目。

          常用html代碼編寫的免費軟件有HBuilderX,vs code,Sublime Text 等等。

          HBuilderX官網下載地址:

          https://www.dcloud.io/hbuilderx.html

          vs code的官網下載地址:

          https://code.visualstudio.com/

          Sublime Text官網下載地址:

          http://www.sublimetext.com/

          我們以后的教程都使用HBuilderX,所以下面為了同學們的學習方便,對HBuilderX的下載和安裝做詳細的教程。


          一,下載

          首先訪問HBuilderX的官網網址:

          https://www.dcloud.io/hbuilderx.html

          打開上面的HBuilderX下載網址后點擊頁面上download,在彈出的對話框里選擇適合自己電腦的HBuilderX版本下載。

          在Windows10環境下下載后的文件是一個壓縮的.zip文件。



          二,安裝

          鼠標右擊下載下來的壓縮文件進行解壓。

          解壓完成后是一個名為HBuilderX的文件夾。

          解壓完成后鼠標雙擊HBuilderX文件夾:

          雙擊運行名為HBuilderX.exe的應用程序文件即可啟動HBuilderX編輯器:

          因為HBuilderX是一個綠色軟件所以沒有桌面快捷方式和開始菜單快速啟動程序,我們可以右擊HBuilderX.exe文件創建桌面快捷方式。



          小百科:

          綠色軟件指一類小型軟件,多數為免費軟件,最大特點是軟件無需安裝便可使用,可存放于閃存中,移除后也不會將任何記錄留在本機計算機上。通俗點講綠色軟件就是指不用安裝,下載直接可以使用的軟件。綠色軟件不會在注冊表中留下注冊表鍵值,所以相對一般的軟件來說,綠色軟件對系統的影響幾乎沒有,所以是很好的一種軟件類型。



          三,新建項目

          HBuilderX編輯器初次啟動時的默認界面是下圖所示:

          按照下圖所示可以創建一個新的名為demo1空白項目:

          名為demo1的空白項目創建成功后的界面如下圖所示:

          接下來在剛我們新建的demo1項目下創建名為helloworld的html文件

          鼠標右擊創建的demo1項目選擇新建在選擇.html文件:

          在彈出的對話框里填入html文件的名稱:

          編寫一段代碼:

          運行:

          在瀏覽器上觀察效果:




          好了,到這里html的開發環境搭建和HBuilderX的安裝教程結束了。

          下面再給大家教一下怎樣修改HBuilderX的主題風格,HBuilderX自身提供了修改軟件主題的功能,使用者可以自身需求和喜好修改HBuilderX的風格。在喜歡自己喜歡的環境下做開發也是令人羨慕的一件事。

          按照以下步驟可以修改HBuilderX的主題,默認主題是綠柔,我們可以改成雅黑,雅藍或者自定義主題:

          雅黑主題:

          雅藍主題:


          好了本節全部內容全部結束了,希望我準備的內容對你有所幫助

          你的支持是我的最大動力,若覺得我的教程還可以或對你有幫助為我點贊加關注!謝謝!

          要:在IT行業中,后端開發者發揮著至關重要的作用。尤其是在技術變革日新月異的時代,更需要后端開發者不斷提升自我的技能,但是,無論技術迭代如何迅速,后端開發人員的“基本功”都不可以落下。本文展開討論成為JavaScript堆棧后端開發人員,必須經歷的那些事……

          原文鏈接:

          https://billypentester.medium.com/ultimate-10-stages-to-master-backend-development-f6f65f22a327

          聲明:本文為CSDN翻譯,轉載請注明來源。

          作者 | Bilal Ahmad

          譯者 | 朱珂欣 責編 | 屠敏

          出品 | CSDN(ID:CSDNnews)

          隨著時代的發展,越來越多編程語言和開發工具的出現,讓開發者能夠方便且快捷地開發和部署應用程序。其中,后端開發多是指服務器端編程,開發人員通過創建應用程序體系結構和業務邏輯,以此處理和存儲數據并輸出有用的信息。

          毋庸置疑,成為后端開發人員必然有門檻,掌握Web和操作系統的基礎知識、了解數據庫、計算機網絡協議、數據結構和算法、開發工具等,逐漸成為后端開發人員的入門技能。后端編程語言、框架和堆棧也很多,例如JavaScript、Python、PHP、Java、Ruby等。那么,成為JavaScript堆棧后端開發人員,需要面臨那幾個必須經歷的階段呢?


          第1階段:掌握Web基礎知識

          在開發人員的初始階段,學習Web的基礎知識是至關重要的。因為擁有Web概念可以幫助開發人員更好地了解互聯網的工作原理,例如使用哪些協議、如何傳遞消息等。

          首當其沖的是了解Web中的一些基本概念,例如HTTP的概念、HTTP的基本方面、HTTP 請求的類型及作用、客戶端和服務器模型、OSI 模型、DNS 工作原理等。


          第2階段:了解操作系統知識
          操作系統,管理著計算機上的所有軟件和硬件。它執行內存和進程管理,處理輸入和輸出等。通過運行操作系統,進一步運行完整 Web 應用的服務器。因此,開發人員有必要了解操作系統整體實現,以最大限度地提高性能并優化內存。
          在此階段,開發需要了解操作系統體系結構、文件系統、基本CLI命令、內存和進程管理、操作系統線程等。

          第3階段:學習后端框架和語言

          在開發者學習要使用的后端框架和語言的過程中,第一步是學習JavaScript。學習JavaScript的基礎知識,例如數據類型、循環、選擇、函數、對象、類、數組、字符串、正則表達式等。
          JavaScript 由ECMAScript、文檔對象模型(DOM)和瀏覽器對象模型(BOM)三個部分組成。ECMAScript是JavaScript所基于的腳本語言規范。它引入了新的JavaScript功能,如箭頭函數,異步等待,模板文本等,這些功能可以對有效的編碼很有幫助。
          Node.js是一個開源的、跨平臺的、后端的JavaScript運行時環境,它在JavaScript引擎上運行并執行JavaScript代碼。開發人員可以學習基本的節點JavaScript模塊,例如fs、path、os等。

          第4階段:使用服務器框架和API開發

          首先,服務器端框架作為后端開發中的主要角色,它是前端和后端(節點應用)之間的通信網關,使編寫、維護和擴展Web應用更加容易。
          服務器端框架提供工具和庫來實現簡單、常見的開發任務,包括路由處理,數據庫交互,會話支持和用戶驗證,格式化輸出,提高安全性應對網絡攻擊,也能使開發人員完全控制傳入和傳出的請求/響應,提供端點,執行中間件功能等。
          其次,API開發作為一種實踐階段,開發人員將學習如何使用Express JS和節點JS創建簡單的REST API并執行CRUD操作。使用快速中間件驗證傳入請求,使用路由器處理端點等。
          Postman 在測試 API 端點方面很有幫助。添加更多內容并了解 swagger 和 Open API。

          第5階段:使用模板引擎

          通常,前端(React應用程序)和后端(快速應用程序)之間的通信是使用MERN堆棧中的API調用完成的。客戶端從服務器請求數據,服務器將請求的數據發送回客戶端。
          但是,如果開發人員的項目很小,并且對 React 或其他前端框架不了解,可以使用模板引擎。
          模板引擎可幫助開發人員創建靜態HTML模板文件,并在運行時將模板文件中的變量替換為實際值,這使其成為動態網站。模板引擎與Express JS的集成一起工作。它從數據庫獲取數據值,并可以通過HTML 模板文件呈現這些值。


          第6階段:了解數據庫

          數據庫在后端開發中發揮著巨大的作用。數據庫用于以結構化方式存儲數據以及訪問和維護數據。

          后端應用程序可以通過使用MongoDB,MySQL等第三方npm包查詢數據庫來直接與數據庫交互。如果開發人員不了解SQL或數據庫語言,則需要學習任何ORM/ODM作為中間件,將對象方法轉換為復雜的數據庫查詢,這些中間件為開發人員提供了一個名為模型的完整結構,用于在將數據輸入數據庫之前驗證數據。此外,它在對象模型之上提供了一個額外的安全層。


          第7階段:關注安全性

          安全性是企業級 Web 應用程序的一大關注點。單個漏洞會導致數據泄露或應用程序故障。Web 應用中應有適當的驗證、身份驗證和授權。

          因此,開發人員在該階段可能會涉及促進應用更安全的一些技術,例如:
          • JWT:使用令牌防止對受保護資源的意外訪問;
          • Cookie:用于存儲有關訪問網頁的信息;
          • 會話:用于維護與服務器的安全連接;
          • CORS:使用CORS從一個網站向另一個網站發出請求;
          • 哈希:使用中間件通過salt對密碼進行哈希處理;
          • 加密/解密:使用中間件加密和解密重要數據;
          • SSL:使用SSL認證來保護事務;
          • 限制:使用中間件應用請求限制,防止DDOS攻擊。


          第8階段:使用消息代理

          現代應用程序非常復雜,由于時間復雜度大,CPU密集型操作、大量數據處理以及多個服務之間的API通信存在耗時的問題,會帶來糟糕的用戶體驗。

          消息代理成為幫助克服其中一些困難的解決方案之一消息代理由 3 個組件組成:

          • 制作人:生產者發送有關主題的消息。一個或多個發布者可以針對同一主題發布內容;

          • 消費者:訂閱者訂閱主題,發布到該主題的所有消息都將由該主題的所有訂閱者接收;

          • 隊列/主題:隊列保存由生產者發布并由消費者訪問的消息。


          第9階段:測試完整的API

          在實時服務器上部署Web應用程序之前,為了減少單個錯誤的輸入或缺少數據導致正在運行的服務器出現故障,需要進行測試。

          測試可以根據多個標準在多個級別上進行,開發人員可以檢查Web應用是否返回了正確的狀態代碼、錯誤消息、數據等。

          在這個階段,開發人員的主要任務是使用Jest測試完整的API。Jest是一個著名的單元測試框架,用于測試Web應用程序和API。它提供了多種方法來自動化測試過程,檢查對錯誤或缺失數據的響應等。

          第10階段:實時服務器/云上部署Web應用程序

          在部署Web應用之前,開發人員需要學習Git、GitHub的操作以及版本控制工具的使用,以使部署靈活且可擴展。

          Git可以用于版本控制,通過創建多個分支,跟蹤源代碼中的更改,并使多個開發人員能夠協同工作。GitHub是一個用于版本控制和協作的代碼托管平臺,可以允許開發人員和其他人共同處理項目。GitHub操作可幫助您自動執行軟件開發工作流。單個操作是可重用的代碼段,可用于在 GitHub上生成、測試、打包或部署項目。它還可用于自動執行工作流程的任何步驟。部署完整的Web應用非常復雜。開發者還需要一個專用服務器來響應HTTP請求,并使用在線數據庫。

          總的來說,從應用程序開發最初階段的掌握Web基礎知識,到最后階段在實時服務器/云上部署Web應用程序。JavaScript堆棧后端開發者在點滴的積累中,學習和掌握了與應用開發相關的實踐經驗。然而,無論是對于后端開發的初學者還是對有經驗工程師,無論邁過多少個階段,學習之路都不會中斷。

          主站蜘蛛池模板: 好吊视频一区二区三区| 一本一道波多野结衣AV一区| 天堂不卡一区二区视频在线观看| 国产午夜精品一区理论片| 美女福利视频一区二区| 国产一区二区三区在线看片| 国产伦精品一区二区三区免.费 | 久久精品无码一区二区三区| 一区二区三区午夜视频| 精品午夜福利无人区乱码一区| 国模精品一区二区三区视频| 亚洲av高清在线观看一区二区 | 亚洲AV无码一区二区三区电影| 久久人妻无码一区二区| 国产vr一区二区在线观看| 亚洲av午夜福利精品一区 | 白丝爆浆18禁一区二区三区| 狠狠做深爱婷婷综合一区 | 日本人的色道www免费一区| 在线精品动漫一区二区无广告| 无码人妻久久一区二区三区免费| 精品国产一区AV天美传媒| 无码av不卡一区二区三区| 日韩精品成人一区二区三区| 无码国产精品一区二区免费式直播| 一区二区三区在线免费| 亚洲精品一区二区三区四区乱码| 日本一区高清视频| 亚洲一区二区三区精品视频| 国产成人AV区一区二区三| 久久91精品国产一区二区| 午夜精品一区二区三区在线视 | 精品福利一区二区三区免费视频| 精品国产日韩一区三区| 日本亚洲成高清一区二区三区| 国产天堂在线一区二区三区 | 亚洲一区二区无码偷拍| 在线精品动漫一区二区无广告| 亚洲av乱码中文一区二区三区 | 国产小仙女视频一区二区三区 | 亚洲高清日韩精品第一区|