Javascript是一種由 Netscape 的 LiveScript 發展而來的原型化繼承的面向對象的動態類型的區分大小寫的客戶端 腳本語言 ,主要目的是為了解決服務器端語言,比如 Perl ,遺留的速度問題,為客戶提供更流暢的瀏覽效果。當時服務端需要對數據進行驗證,由于網絡速度相當緩慢,只有28.8kbps,驗證步驟浪費的時間太多。于是Netscape的瀏覽器 Navigator 加入了Javascript,提供了數據驗證的基本功能。
?
?
?
?
基本簡介
JavaScript 是根據 "ECMAScript"標準制定的網頁腳本語言。這個標準由 ECMA 組織發展和維護。ECMA-262 是正式的 JavaScript 標準。這個標準基于 JavaScript (Netscape) 和 JScript (Microsoft)。Netscape (Navigator 2.0) 的 Brendan Eich 發明了這門語言,從 1996 年開始,已經出現在所有的 Netscape 和 Microsoft 瀏覽器中。ECMA-262 的開發始于 1996 年,在 1997 年 7 月,ECMA 會員大會采納了它的首個版本。
在 1998 年,該標準成為了國際 ISO 標準 (ISO/IEC 16262)。這個標準仍然處于發展之中。
在 2005年12月,ECMA發布ECMA-357標準(ISO/IEC 22537)出臺,主要增加對擴展標記語言 XML 的有效支持。
目前javascript 的最新版本為1.8。
?
歷史沿革
?
大概在1998年,一家稱作Nombas的公司開始開發一種叫做C減減(C-minus-minus,簡稱Cmm)的嵌入式腳本語言。這個腳本語言捆綁在一個叫做CEnvi的共享軟件產品中,當Netscape Navigator嶄露頭角時,Nombas開發了一個可以嵌入網頁中的CEnvi的版本。這些早期的試驗稱為EspressoPage(濃咖啡般的頁面),它們代表了第一個在萬維網上使用的客戶端腳本語言。而Nombas絲毫沒有料到它的理念將會成為因特網的一塊重要基石。
?
常見問題
?
* JavaScript是Java的變種嗎?
JavaScript最初的確是受Java啟發而開始設計的,而且設計的目的之一就是“看上去像Java”[2],因此語法上有很多類似之處,許多名稱和命名規范也借自Java。但是實際上,JavaScript的主要設計原則源自Self和Scheme[3],它與Java本質上是不同的。它與Java名稱上的近似,是當時網景為了營銷考慮與Sun公司達成協議的結果。其實從本質上講javascript更像是一門函數式編程語言.而非面向對象的語言,它使用一些智能的語法和語義來仿真高度復雜的行為。其對象模型極為靈活、開放和強大,具有全部的反射性。
* JavaScript與JScript相同嗎?
為了取得技術優勢,微軟推出了JScript來迎戰JavaScript的腳本語言。為了互用性,Ecma國際(前身為歐洲計算機制造商協會)建立了ECMA-262標準(ECMAScript)。現在兩者都屬于ECMAScript的實現。
* JavaScript是一門簡單的語言嗎?
盡管JavaScript作為給非程序人員的腳本語言,而非作為給程序人員的編程語言來推廣和宣傳,但是JavaScript是一門具有非常豐富特性的語言,它有著和其他編程語言一樣的復雜性,或更甚復雜。實際上,你必需對JavaScript有扎實的理解才能用它來撰寫比較復雜的程序。
?
基本概念
?
在這里只作簡單介紹,在以后的例子中結程序再作具體解釋其作用。
1、運算符
運算符就是完成操作的一系列符號,它有七類:
賦值運算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算術運算符(+,-,*,/,++,--,%)、比較運算符(>,<,<=,>=,==,===,!=,!==)、邏輯運算符(||,&&,!)、條件運算(?:)、位移運算符(|,&,<<,>>,~,^)和字符串運算符(+)。
可能很多人不知道"==="什么。
在這里,我為大家解釋一下,在javascript中 "==="才是全等 只有"==="兩邊的內存地址也相等 才會返回真
而"=="只是值相等就會返回真
例如:null==undefined 會返回真 , 但是null===undefined 就會返回假!
2、表達式
運算符和操作數的組合稱為表達式,通常分為四類:賦值表達式、算術表達式、布爾表達式和字符串表達式。
3、語句
Javascript程序是由若干語句組成的,語句是編寫程序的指令。Javascript提供了完整的基本編程語句,它們是:
賦值語句、switch選擇語句、while循環語句、for循環語句、for each循環語句、do while循環語句、break循環中止語句、continue循環中斷語句、with語句、try...catch語句、
if語句(if..else,if...else if ...)、let語句。
4、函數
函數是命名的語句段,這個語句段可以被當作一個整體來引用和執行。使用函數要注意以下幾點:
1)函數由關鍵字function定義(也可由Function構造函數構造);
2)使用function關鍵字定義的函數在一個作用域內是可以在任意處調用的(包括定義函數的語句前);而用var關鍵字定義的必須定義后才能被調用;
3)函數名是調用函數時引用的名稱,它對大小寫是敏感的,調用函數時不可寫錯函數名;
4)參數表示傳遞給函數使用或操作的值,它可以是常量,也可以是變量,也可以是函數,在函數內部可以通過arguments對象(arguments對象是一個偽數組,屬性callee引用被調用的函數)訪問所有參數;
5)return語句用于返回表達式的值。
6)yield語句扔出一個表達式,并且中斷函數執行直到下一次調用next。
一般的函數都是以下格式:
function myFunction(params){
//執行的語句
}
函數表達式:
var myFunction=function(params){
//執行的語句
}
var myFunction = function(){
//執行的語句
}
myFunction();//調用函數
匿名函數,它常作為參數在其他函數間傳遞:
window.addEventListener('load',function(){
//執行的語句
},false);
5、對象
Javascript的一個重要功能就是面向對象的功能,通過基于對象的程序設計,可以用更直觀、模塊化和可重復使用的方式進行程序開發。
一組包含數據的屬性和對屬性中包含數據進行操作的方法,稱為對象。比如要設定網頁的背景顏色,所針對的對象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍色。
6、事件
用戶與網頁交互時產生的操作,稱為事件。事件可以由用戶引發,也可能是頁面發生改變,甚至還有你看不見的事件(如Ajax的交互進度改變)。絕大部分事都由用戶的動作所引發,如:用戶按鼠標的按鈕,就產生click事件,若鼠標的指針的鏈接上移動,就產生mouseover事件等等。在Javascript中,事件往往與事件處理程序配套使用。
而對事件的處理,W3C的方法是用addEventListener()函數,它有三個參數:事件,引發的函數,是否使用事件捕捉。為了安全性,建議將第三個參數始終設置為false;
傳統的方法就是定義元素的on...事件,它就是W3C的方法中的事件參數前加一個“on”。而IE的事件模型使用attachEvent和dettachEvent對事件進行綁定和刪除。javascript中事件還分捕獲和冒泡兩個階段,但是傳統綁定只支持冒泡事件。
7、變量
如 var myVariable = "some value";
變量有它的類型,上例中myVariable的類型為string(字符串)
javascript支持的常用類型還有:
object:對象
array:數組
number:數;
boolean:布爾值,只有true和false兩個值,是所有類型中占用內存最少的;
null:一個空值,唯一的值是null;
undefined:沒有定義和賦值的變量
實際上javascript的變量是弱變量類型,你賦值給他的是字符串,他就是String .
是數字他就是整形。是true和false他就是boolean型(注意,不能加引號,不然會被當成字符串處理)。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
