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

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