日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

什么是Javascript

系統(tǒng) 2400 0

Javascript是一種由 Netscape LiveScript 發(fā)展而來(lái)的原型化繼承的面向?qū)ο蟮膭?dòng)態(tài)類型的區(qū)分大小寫的客戶端 腳本語(yǔ)言 ,主要目的是為了解決服務(wù)器端語(yǔ)言,比如 Perl ,遺留的速度問(wèn)題,為客戶提供更流暢的瀏覽效果。當(dāng)時(shí)服務(wù)端需要對(duì)數(shù)據(jù)進(jìn)行驗(yàn)證,由于網(wǎng)絡(luò)速度相當(dāng)緩慢,只有28.8kbps,驗(yàn)證步驟浪費(fèi)的時(shí)間太多。于是Netscape的瀏覽器 Navigator 加入了Javascript,提供了數(shù)據(jù)驗(yàn)證的基本功能。

?

?

?

?

基本簡(jiǎn)介  

JavaScript 是根據(jù) "ECMAScript"標(biāo)準(zhǔn)制定的網(wǎng)頁(yè)腳本語(yǔ)言。這個(gè)標(biāo)準(zhǔn)由 ECMA 組織發(fā)展和維護(hù)。ECMA-262 是正式的 JavaScript 標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)基于 JavaScript (Netscape) 和 JScript (Microsoft)。Netscape (Navigator 2.0) 的 Brendan Eich 發(fā)明了這門語(yǔ)言,從 1996 年開(kāi)始,已經(jīng)出現(xiàn)在所有的 Netscape 和 Microsoft 瀏覽器中。ECMA-262 的開(kāi)發(fā)始于 1996 年,在 1997 年 7 月,ECMA 會(huì)員大會(huì)采納了它的首個(gè)版本。

  在 1998 年,該標(biāo)準(zhǔn)成為了國(guó)際 ISO 標(biāo)準(zhǔn) (ISO/IEC 16262)。這個(gè)標(biāo)準(zhǔn)仍然處于發(fā)展之中。

  在 2005年12月,ECMA發(fā)布ECMA-357標(biāo)準(zhǔn)(ISO/IEC 22537)出臺(tái),主要增加對(duì)擴(kuò)展標(biāo)記語(yǔ)言 XML 的有效支持。

  目前javascript 的最新版本為1.8。

?

歷史沿革

?

大概在1998年,一家稱作Nombas的公司開(kāi)始開(kāi)發(fā)一種叫做C減減(C-minus-minus,簡(jiǎn)稱Cmm)的嵌入式腳本語(yǔ)言。這個(gè)腳本語(yǔ)言捆綁在一個(gè)叫做CEnvi的共享軟件產(chǎn)品中,當(dāng)Netscape Navigator嶄露頭角時(shí),Nombas開(kāi)發(fā)了一個(gè)可以嵌入網(wǎng)頁(yè)中的CEnvi的版本。這些早期的試驗(yàn)稱為EspressoPage(濃咖啡般的頁(yè)面),它們代表了第一個(gè)在萬(wàn)維網(wǎng)上使用的客戶端腳本語(yǔ)言。而Nombas絲毫沒(méi)有料到它的理念將會(huì)成為因特網(wǎng)的一塊重要基石。

?

常見(jiàn)問(wèn)題

?

  * JavaScript是Java的變種嗎?

  JavaScript最初的確是受Java啟發(fā)而開(kāi)始設(shè)計(jì)的,而且設(shè)計(jì)的目的之一就是“看上去像Java”[2],因此語(yǔ)法上有很多類似之處,許多名稱和命名規(guī)范也借自Java。但是實(shí)際上,JavaScript的主要設(shè)計(jì)原則源自Self和Scheme[3],它與Java本質(zhì)上是不同的。它與Java名稱上的近似,是當(dāng)時(shí)網(wǎng)景為了營(yíng)銷考慮與Sun公司達(dá)成協(xié)議的結(jié)果。其實(shí)從本質(zhì)上講javascript更像是一門函數(shù)式編程語(yǔ)言.而非面向?qū)ο蟮恼Z(yǔ)言,它使用一些智能的語(yǔ)法和語(yǔ)義來(lái)仿真高度復(fù)雜的行為。其對(duì)象模型極為靈活、開(kāi)放和強(qiáng)大,具有全部的反射性。

  * JavaScript與JScript相同嗎?

  為了取得技術(shù)優(yōu)勢(shì),微軟推出了JScript來(lái)迎戰(zhàn)JavaScript的腳本語(yǔ)言。為了互用性,Ecma國(guó)際(前身為歐洲計(jì)算機(jī)制造商協(xié)會(huì))建立了ECMA-262標(biāo)準(zhǔn)(ECMAScript)。現(xiàn)在兩者都屬于ECMAScript的實(shí)現(xiàn)。

  * JavaScript是一門簡(jiǎn)單的語(yǔ)言嗎?

  盡管JavaScript作為給非程序人員的腳本語(yǔ)言,而非作為給程序人員的編程語(yǔ)言來(lái)推廣和宣傳,但是JavaScript是一門具有非常豐富特性的語(yǔ)言,它有著和其他編程語(yǔ)言一樣的復(fù)雜性,或更甚復(fù)雜。實(shí)際上,你必需對(duì)JavaScript有扎實(shí)的理解才能用它來(lái)撰寫比較復(fù)雜的程序。

?

基本概念

?

在這里只作簡(jiǎn)單介紹,在以后的例子中結(jié)程序再作具體解釋其作用。

1、運(yùn)算符

  運(yùn)算符就是完成操作的一系列符號(hào),它有七類:

  賦值運(yùn)算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算術(shù)運(yùn)算符(+,-,*,/,++,--,%)、比較運(yùn)算符(>,<,<=,>=,==,===,!=,!==)、邏輯運(yùn)算符(||,&&,!)、條件運(yùn)算(?:)、位移運(yùn)算符(|,&,<<,>>,~,^)和字符串運(yùn)算符(+)。

  可能很多人不知道"==="什么。

  在這里,我為大家解釋一下,在javascript中 "==="才是全等 只有"==="兩邊的內(nèi)存地址也相等 才會(huì)返回真

  而"=="只是值相等就會(huì)返回真

  例如:null==undefined 會(huì)返回真 , 但是null===undefined 就會(huì)返回假!

2、表達(dá)式

  運(yùn)算符和操作數(shù)的組合稱為表達(dá)式,通常分為四類:賦值表達(dá)式、算術(shù)表達(dá)式、布爾表達(dá)式和字符串表達(dá)式。

3、語(yǔ)句

  Javascript程序是由若干語(yǔ)句組成的,語(yǔ)句是編寫程序的指令。Javascript提供了完整的基本編程語(yǔ)句,它們是:

  賦值語(yǔ)句、switch選擇語(yǔ)句、while循環(huán)語(yǔ)句、for循環(huán)語(yǔ)句、for each循環(huán)語(yǔ)句、do while循環(huán)語(yǔ)句、break循環(huán)中止語(yǔ)句、continue循環(huán)中斷語(yǔ)句、with語(yǔ)句、try...catch語(yǔ)句、

  if語(yǔ)句(if..else,if...else if ...)、let語(yǔ)句。

4、函數(shù)

  函數(shù)是命名的語(yǔ)句段,這個(gè)語(yǔ)句段可以被當(dāng)作一個(gè)整體來(lái)引用和執(zhí)行。使用函數(shù)要注意以下幾點(diǎn):

  1)函數(shù)由關(guān)鍵字function定義(也可由Function構(gòu)造函數(shù)構(gòu)造);

  2)使用function關(guān)鍵字定義的函數(shù)在一個(gè)作用域內(nèi)是可以在任意處調(diào)用的(包括定義函數(shù)的語(yǔ)句前);而用var關(guān)鍵字定義的必須定義后才能被調(diào)用;

  3)函數(shù)名是調(diào)用函數(shù)時(shí)引用的名稱,它對(duì)大小寫是敏感的,調(diào)用函數(shù)時(shí)不可寫錯(cuò)函數(shù)名;

  4)參數(shù)表示傳遞給函數(shù)使用或操作的值,它可以是常量,也可以是變量,也可以是函數(shù),在函數(shù)內(nèi)部可以通過(guò)arguments對(duì)象(arguments對(duì)象是一個(gè)偽數(shù)組,屬性callee引用被調(diào)用的函數(shù))訪問(wèn)所有參數(shù);

  5)return語(yǔ)句用于返回表達(dá)式的值。

  6)yield語(yǔ)句扔出一個(gè)表達(dá)式,并且中斷函數(shù)執(zhí)行直到下一次調(diào)用next。

  一般的函數(shù)都是以下格式:

  function myFunction(params){

  //執(zhí)行的語(yǔ)句

  }

  函數(shù)表達(dá)式:

  var myFunction=function(params){

  //執(zhí)行的語(yǔ)句

  }

  var myFunction = function(){

  //執(zhí)行的語(yǔ)句

  }

  myFunction();//調(diào)用函數(shù)

  匿名函數(shù),它常作為參數(shù)在其他函數(shù)間傳遞:

  window.addEventListener('load',function(){

  //執(zhí)行的語(yǔ)句

  },false);

5、對(duì)象

  Javascript的一個(gè)重要功能就是面向?qū)ο蟮墓δ埽ㄟ^(guò)基于對(duì)象的程序設(shè)計(jì),可以用更直觀、模塊化和可重復(fù)使用的方式進(jìn)行程序開(kāi)發(fā)。

  一組包含數(shù)據(jù)的屬性和對(duì)屬性中包含數(shù)據(jù)進(jìn)行操作的方法,稱為對(duì)象。比如要設(shè)定網(wǎng)頁(yè)的背景顏色,所針對(duì)的對(duì)象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色為藍(lán)色。

6、事件

  用戶與網(wǎng)頁(yè)交互時(shí)產(chǎn)生的操作,稱為事件。事件可以由用戶引發(fā),也可能是頁(yè)面發(fā)生改變,甚至還有你看不見(jiàn)的事件(如Ajax的交互進(jìn)度改變)。絕大部分事都由用戶的動(dòng)作所引發(fā),如:用戶按鼠標(biāo)的按鈕,就產(chǎn)生click事件,若鼠標(biāo)的指針的鏈接上移動(dòng),就產(chǎn)生mouseover事件等等。在Javascript中,事件往往與事件處理程序配套使用。

  而對(duì)事件的處理,W3C的方法是用addEventListener()函數(shù),它有三個(gè)參數(shù):事件,引發(fā)的函數(shù),是否使用事件捕捉。為了安全性,建議將第三個(gè)參數(shù)始終設(shè)置為false;

  傳統(tǒng)的方法就是定義元素的on...事件,它就是W3C的方法中的事件參數(shù)前加一個(gè)“on”。而IE的事件模型使用attachEvent和dettachEvent對(duì)事件進(jìn)行綁定和刪除。javascript中事件還分捕獲和冒泡兩個(gè)階段,但是傳統(tǒng)綁定只支持冒泡事件。

7、變量

  如 var myVariable = "some value";

  變量有它的類型,上例中myVariable的類型為string(字符串)

  javascript支持的常用類型還有:

  object:對(duì)象

  array:數(shù)組

  number:數(shù);

  boolean:布爾值,只有true和false兩個(gè)值,是所有類型中占用內(nèi)存最少的;

  null:一個(gè)空值,唯一的值是null;

  undefined:沒(méi)有定義和賦值的變量

  實(shí)際上javascript的變量是弱變量類型,你賦值給他的是字符串,他就是String .

  是數(shù)字他就是整形。是true和false他就是boolean型(注意,不能加引號(hào),不然會(huì)被當(dāng)成字符串處理)。

什么是Javascript


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 商河县| 贵德县| 泰顺县| 民乐县| 常州市| 乐都县| 治多县| 海口市| 昌江| 靖西县| 竹溪县| 台中市| 九江市| 贵定县| 长白| 辽中县| 穆棱市| 贵港市| 两当县| 西宁市| 类乌齐县| 平阳县| 根河市| 多伦县| 财经| 永和县| 鱼台县| 潮安县| 安图县| 阜城县| 榕江县| 靖边县| 通海县| 赤水市| 曲阜市| 台南县| 日照市| 湟源县| 徐汇区| 安福县| 张掖市|