1、算法 + 數據結構 = 程序程序員 程序=數據結構+算法是由N.Wirth(沃斯)提出來的。正則表達式 程序是計算機指令的某種組合,控制計算機的工做流程,完成必定的邏輯功能,以實現某種任務;算法 數據結構指的是數據與數據之間的邏輯關係。具備兩個層面上的涵義--邏輯結構和物理結構;編程 算法指的是解決特定問題的步驟和方法。是程序的邏輯抽象,是解決某類客觀問題的數學過程;瀏覽器 |
2、堆棧=堆+棧緩存 堆棧都是一種數據項按序排列的數據結構,只能在一端(稱爲棧頂(top))對數據項進行插入和刪除。安全 堆棧是一種存儲部件,即數據的寫入跟讀出不須要提供地址,而是根據寫入的順序決定讀出的順序服務器 堆的特性-低地址-值類型cookie 1、順序隨意數據結構 2、堆能夠被當作是一棵樹,如:堆排序 3、通常由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收,分配方式卻是相似於鏈表 4、堆則是存放在二級緩存中,生命週期由虛擬機的垃圾回收算法來決定,一般是用來存放對象,調用這些對象的速度要相對來得低一些 5、堆是由new分配的內存,通常速度比較慢,並且容易產生內存碎片,不過用起來最方便 6、堆的大小受限於計算機系統中有效的虛擬內存,堆得到的空間比較靈活,也比較大 棧的特性-高地址-引用類型 1、後進先出(Last-In/First-Out) 2、由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等 3、棧使用的是一級緩存, 他們一般都是被調用時處於存儲空間中,調用完畢當即釋放 4、棧由系統自動分配,速度較快,但程序員是沒法控制的 5、存在棧中的數據能夠共享 6、棧頂的地址和棧的最大容量是系統預先規定好的,若是申請的空間超過棧的剩餘空間時,將提示overflow,棧得到的空間較小。 |
3、編譯器、編輯器、解釋器 編譯器 1、編譯器就是將「高級語言」翻譯爲「機器語言(低級語言)」的程序 2、編譯器將源程序(Source program)做爲輸入,翻譯產生使用目標語言(Target language)的等價程序。 源代碼通常爲高級語言 (High-level language), 如Pascal、C、C++、C#、Java等, 目標語言則是彙編語言或目標機器的目標代碼(Object code),有時也稱做機器代碼(Machine code)。 編輯器 1、編輯器是軟體程序,通常是指用來編輯電腦文檔案的編寫軟件。例如:Microsoft Word 解釋器 1、解釋器是可以執行用其餘計算機語言編寫的程序的系統軟件,它是一種翻譯程序。它的執行方式是一邊翻譯一邊執行,所以其執行效率通常偏低,可是解釋器的實現較爲簡單,並且編寫源程序的高級語言可使用更加靈活和富於表現力的語法。可是相對的這個直譯的行爲會比編譯再運行來得快。 2、解釋器運行程序的方法有: 1).直接運行高級編程語言 (如 Shell 自帶的解釋器) 2).轉換高級編程語言碼到一些有效率的字節碼 (Bytecode),並運行這些字節碼(如:Ruby) 3).以解釋器包含的編譯器對高級語言編譯,並指示處理器運行編譯後的程序(如:JIT) |
4、JAVASCRIPT=ECMA+DOM+BOM 1、JavaScript是什麼 JavaScript 是一種具備面向對象能力的、解釋型的程序設計語言。更具體一點,它是基 於對象和事件驅動並具備相對安全性的客戶端腳本語言。由於他不須要在一個語言環境下運 行,而只須要支持它的瀏覽器便可。它的主要目的是,驗證發往服務器端的數據、增長 Web 互動、增強用戶體驗度等。 2、JavaScript 特色 1)、鬆散性 JavaScript 語言核心與 C、C++、Java 類似,好比條件判斷、循環、運算符等。但,它 倒是一種鬆散類型的語言,也就是說,它的變量沒必要具備一個明確的類型。 2)、對象屬性 JavaScript 中的對象把屬性名映射爲任意的屬性值。它的這種方式很像哈希表或關聯數 組,而不像 C 中的結構體或者 C++、Java 中的對象。 3)、繼承機制 JavaScript 中的面向對象繼承機制是基於原型的,這和另一種不太爲人所知的 Self 語 言很像,而和 C++以及 Java 中的繼承大不相同。 3、JavaScript 歷史 1997 年,JavaScript 1.1 做爲一個草案提交給歐洲計算機制造商協會(ECMA)。第 39 技術委員會(TC39)被委派來「標準化一個通用、跨平臺、中立於廠商的腳本語言的語法 和語義」。由來自 Netscape、Sun、微軟、Borland 和其餘一些對腳本編程感興趣的公司的程序員組成的 TC39 錘鍊出了ECMA-262,該標準定義了叫作 ECMAScript 的全新腳本語言。 4、JavaScript 實現 儘管 ECMAScript 是一個重要的標準,但它並非 JavaScript 惟一的部分,固然,也不是惟一被標準化的部分。實際上,一個完整的 JavaScript 實現是由如下 3 個不一樣部分組成的: • 核心(ECMAScript) • 文檔對象模型(DOM) • 瀏覽器對象模型(BOM) ECMAScript 描述了該語言的語法和基本對象; DOM 描述了處理網頁內容的方法和接口; BOM 描述了與瀏覽器進行交互的方法和接口;
|
5、ECMAScript ECMA-262 標準: ECMAScript 能夠爲不一樣種類的宿主環境提供核心的腳本編程能力,所以核心的腳本語言是與任何特定的宿主環境分開進行規定的 Web 瀏覽器對於 ECMAScript 來講是一個宿主環境,但它並非惟一的宿主環境。事實上,還有不可勝數的其餘各類環境(例如 Nombas 的 ScriptEase,以及 Macromedia 同時用在 Flash 和 Director MX 中的 ActionScript)能夠容納 ECMAScript 實現。 ECMAScript 描述瞭如下內容: • 語法 • 類型 • 語句 • 關鍵字 • 保留字 • 運算符 • 對象 ECMAScript 僅僅是一個描述,定義了腳本語言的全部屬性、方法和對象。其餘語言能夠實現 ECMAScript 來做爲功能的基準,JavaScript 就是這樣:
每一個瀏覽器都有它本身的 ECMAScript 接口的實現,而後這個實現又被擴展,包含了 DOM 和 BOM。固然還有其餘實現並擴展了 ECMAScript 的語言,例如 Windows 腳本宿主(Windows Scripting Host, WSH)、Macromedia 在 Flash 和 Director MX 中的 ActionScript,以及 Nombas ScriptEase。 ECMAScript 符合性 在 ECMA-262 中,ECMAScript 符合性(conformance)有明確的定義。一個腳本語言必須知足如下四項基本原則: • 符合的實現必須按照 ECMA-262 中所描述的支持全部的「類型、值、對象、屬性、函數和程序語言及語義」 • 符合的實現必須支持 Unicode 字符標準(UCS) • 符合的實現能夠增長沒有在 ECMA-262 中指定的「額外類型、值、對象、屬性和函數」。ECMA-262 將這些增長描述爲規範中未給定的新對象或對象的新屬性 • 符合的實現能夠支持沒有在 ECMA-262 中定義的「程序和正則表達式語法」(意思是能夠替換或者擴展內建的正則表達式支持) 全部 ECMAScript 實現必須符合以上標準。 |
6、DOM DOM(文檔對象模型)是 HTML 和 XML 的應用程序接口(API)。DOM 將把整個頁面規劃成由節點層級構成的文檔。HTML 或 XML 頁面的每一個部分都是一個節點的衍生物。 DOM 經過建立樹來表示文檔,從而使開發者對文檔的內容和結構具備空前的控制力。用 DOM API 能夠輕鬆地刪除、添加和替換節點。 DOM Level 2 引入了幾種 DOM 新模塊,用於處理新的接口類型: • DOM 視圖 - 描述跟蹤文檔的各類視圖(即 CSS 樣式化以前和 CSS 樣式化以後的文檔) • DOM 事件 - 描述事件的接口 • DOM 樣式 - 描述處理基於 CSS 樣式的接口 • DOM 遍歷和範圍 - 描述遍歷和操做文檔樹的接口 |
7、BOM BOM 主要處理瀏覽器窗口和框架,不過一般瀏覽器特定的 JavaScript 擴展都被看作 BOM 的一部分。這些擴展包括: • 彈出新的瀏覽器窗口 • 移動、關閉瀏覽器窗口以及調整窗口大小 • 提供 Web 瀏覽器詳細信息的定位對象 • 提供用戶屏幕分辨率詳細信息的屏幕對象 • 對 cookie 的支持 • IE 擴展了 BOM,加入了 ActiveXObject 類,能夠經過 JavaScript 實例化 ActiveX 對象 因爲沒有相關的 BOM 標準,每種瀏覽器都有本身的 BOM 實現。有一些事實上的標準,如具備一個窗口對象和一個導航對象,不過每種瀏覽器能夠爲這些對象或其餘對象定義本身的屬性和方法。 |