一、JavaScript起源
1、1994年,網景公司(Netscape)發布了Navigator瀏覽器0.9版
是歷史上第一個比較成熟的網路瀏覽器 , 但這個版本的瀏覽器只能用來瀏覽,不具備與訪問者互動的能力
2、網景公司當時有兩個選擇:
允許現有語言直接嵌入網頁(推廣方便,兼容性差)
發明一種全新語言(推廣難,不用考慮兼容性)
3、1995年Sun公司將Oak語言改名為Java,正式向市場推出, 許諾這種語言可以"一次撰寫,到處運行"(Write Once, Run Anywhere)
4、網景公司與Sun公司聯盟 ,雇傭 34歲的系統程式員Brendan Eich
被指定為這種"簡化版Java語言"的設計師 , 為了應付公司安排的任務,他只用10天時間就把Javascript設計出來了,
他的設計思路是這樣的:
(1)借鑒C語言的基本語法;
(2)借鑒Java語言的資料型別和記憶體管理;
(3)借鑒Scheme語言,將函式提升到"第一等公民"(first class)的地位;
(4)借鑒Self語言,使用基于原型(prototype)的繼承機制,
所以,Javascript語言實際上是兩種語言風格的混合產物----(簡化的)函式式編程+(簡化的)面向物件編程,這是由Brendan Eich(函式式編程)與網景公司(面向物件編程)共同決定的,
二、JavaScript用途
一般用來撰寫客戶端腳本,來為html頁面添加互動行為,是前臺語言,而不是后臺語言(node.js除外)
三、JavaScript的特點
1、解釋執行(瀏覽器就是解釋器):事先不編譯、逐行執行、無需進行嚴格的變數宣告,
2、簡單易用:可以使用任何文本編輯工具撰寫,只需要瀏覽器就可以執行程式,
3、基于物件:內置大量現成物件,撰寫少量程式可以完成目標
四、JavaScript組成
1、ECMAScript:JavaScript的語法標準,包括變數、運算式、運算子、函式、if陳述句、for陳述句等,
2、檔案物件模型(DOM) Document object model:操作網頁上的元素的API,比如讓盒子移動、變色、輪播圖等,
3、瀏覽器物件模型(BOM) Broswer object model:操作瀏覽器部分功能的API,比如讓瀏覽器自動滾動,
五、ECMAScript和JavaScript的關系
1996年11月,JavaScript的創造者--Netscape公司,決定將JavaScript提交給國際標準化組織ECMA,希望這門語言能夠成為國際標準,次年,ECMA發布262號標準檔案(ECMA-262)的第一版,規定了瀏覽器腳本語言的標準,并將這種語言稱為ECMAScript,這個版本就是1.0版,
該標準一開始就是針對JavaScript語言制定的,但是沒有稱其為JavaScript,有兩個方面的原因,一是商標,JavaScript本身已被Netscape注冊為商標,而是想體現這門語言的制定者是ECMA,而不是Netscape,這樣有利于保證這門語言的開發性和中立性,
因此ECMAScript和JavaScript的關系是,前者是后者的標準,后者是前者的一種實作,
六、ECMAScript的歷史
| 年份 | 名稱 | 描述 |
| 1997 | ECMAScript 1 | 第一個版本 |
| 1998 | ECMAScript 2 | 版本變更 |
| 1999 | ECMAScript 3 |
添加正則運算式 添加try/catch |
| ECMAScript 4 | 沒有發布 | |
| 2009 | ECMAScript 5 |
添加"strict mode"嚴格模式 添加JSON支持 |
| 2011 | ECMAScript 5.1 | 版本變更 |
| 2015 | ECMAScript 6(ES6) | 添加類和模塊 |
| 2016 | ECMAScript 7 |
增加指數運算子(**) 增加Array.prototype.includes |
七、js是弱型別、動態語言
#1、弱型別、強型別 按照計算機語言的型別系統的設計方式,可以分為強型別和弱型別兩種,二者之間的區別,就在于計算時是否可以不同型別之間對使用者透明地隱式轉換,從使用者的角度來看,如果一個語言可以隱式轉換它的所有型別,那么它的變數、運算式等在參與運算時,即使型別不正確,也能通過隱式轉換來得到正確地型別,這對使用者而言,就好像所有型別都能進行所有運算一樣,這樣的語言被稱作弱型別 #2、動態語言,靜態語言 動態語言:宣告變數時無需指定型別 靜態語言:宣告變數時必先指定型別 #3、JavaScript是一種弱型別、動態語言,弱型別具體表現如下 #2.1、一般規律是,約束越強越不容易出錯,但撰寫程式時也越麻煩,在JavaScript中,因為約束比較弱,所以容易出現這種錯誤:最簡單的例子: var a =200; var b ="1"; var c= a + b; 你可能期望c是201,但實際上它是"2001",這個錯誤在強型別語言中決不會出現,然而正是因為JavaScript沒有這些約束,所以可以很方便地拼接數字和字串型別, #2.2、再比如下面這個例子: var a = '11'; a = a - ''; alert(typeof a);// -->number “-”可以是一元運算子(取負),也可以是二元(減法運算) js是弱型別語言
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/99344.html
標籤:JavaScript
上一篇:創建物件及原型
