成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JavaScript編程全解 —— 基礎(chǔ)

CoreDump / 2214人閱讀

摘要:函數(shù)式編程最后介紹一下函數(shù)式編程。函數(shù)式編程是一種歷史悠久,而又在最近頗為熱門的話題。函數(shù)式編程在面向?qū)ο笠辉~誕生以前就已經(jīng)存在,不過它在很長一段時(shí)間里都被隱藏于過程式編程面向?qū)ο笠彩沁^程式編程的一種的概念之下。

2.1 JavaScript特點(diǎn) 總結(jié)以下幾個(gè)特點(diǎn):

解釋型語言

類似與C和Java的語法結(jié)構(gòu)

動態(tài)語言

基于原型的面向?qū)ο?/strong>

字面量的表現(xiàn)能力

函數(shù)式編程

解釋型語言:
如Python、JavaScript、Perl、Shell......與之相對的就是編譯型語言了,如C/C++等。但是就目前的計(jì)算機(jī)科學(xué)發(fā)展來說,很多人認(rèn)為單憑從解釋型與編譯型兩者來區(qū)分編程語言已經(jīng)力不從心了。虛擬機(jī)隨談(一):解釋器,樹遍歷解釋器,基于棧與基于寄存器.......
解釋型語言直接在運(yùn)行環(huán)境中執(zhí)行代碼(或者說動態(tài)類型語言),一般來說,與編譯型語言相比,解釋型語言開發(fā)更為容易。特別是JavaScript,其運(yùn)行環(huán)境是已經(jīng)普及的瀏覽器,所以能夠很容易嘗試開發(fā)。
劣勢在于:運(yùn)行速度慢于編譯型語言,當(dāng)然這也是理論上的情況?,F(xiàn)在,解釋型語言和編譯型語言這件的界線越來越模糊。編譯型語言在有了足夠快速的編譯器和功能強(qiáng)大的開發(fā)環(huán)境之后,也能實(shí)現(xiàn)和解釋型語言相匹敵的開發(fā)難易度。同時(shí),解釋型語言由于使用了JIT(Just In Time)這種能夠在運(yùn)行中進(jìn)行編譯的的技術(shù),使得運(yùn)行速度得以改善。
類似于C和Java的語法結(jié)構(gòu):
JavaScript的語法結(jié)構(gòu)與C和Java相似。JavaScript同樣有if或while這類關(guān)鍵字,其語法結(jié)構(gòu)也與C和Java類似。他們乍一看很像,因此有這些語言開發(fā)經(jīng)驗(yàn)的人很容易就能熟悉JavaScript。不過需要注意的是,它們之間的相似性其實(shí)并不如表面看起來的那么強(qiáng)。

PS:我既沒接觸過Java也沒敲過C,這種情況對于我想必是崩潰的?。海┎贿^,眾所周知JavaScript是弱類型語言,語法規(guī)則不如強(qiáng)類型語言那么嚴(yán)格。

動態(tài)語言:
JavaScript與C和Java所不同的一點(diǎn)在于,JavaScript是一種動態(tài)語言,將在之后詳述。但從代碼角度看,動態(tài)語言的變量和函數(shù)是不指定返回值類型的。(WTF?)。JavaScript之所以被設(shè)計(jì)成動態(tài)語言,和選擇將其設(shè)計(jì)為解釋型語言的理由一樣,都是優(yōu)先考慮了開發(fā)難易度的結(jié)果。對解釋型語言以及動態(tài)語言的特性的喜好雖然見仁見智,但語言本身沒有高下優(yōu)劣之分。
優(yōu)秀的程序員不會吹噓語言的先進(jìn)性,因?yàn)樵谒麄冄哿?,使用工具的是人??梢园堰@句話看成是對上述末尾的解釋?* v *
基于原型的面向?qū)ο螅?/b>
解釋型語言并不少見,現(xiàn)有的較為知名的腳本語言大多都屬于這一類型。不過基于原型的面向?qū)ο筇匦?,使得JavaScript有點(diǎn)不同。基于原型的面向?qū)ο蠛突陬惖拿嫦驅(qū)ο筇匦允怯兴煌?.....JavaScript并不是第一個(gè)采用基于原型的面向?qū)μ匦哉Z言,但可以說是最為著名的。

目前我也正在理解面向?qū)ο缶幊踢@一編程術(shù)語,很多人把它看成一種編程思維、構(gòu)思程序思維。以后如果充分理解了會在寫一些個(gè)人見解吧:)

字面量的表現(xiàn)能力:
字面量的表現(xiàn)能力是JavaScript開發(fā)生產(chǎn)力得以提高的一個(gè)重要原因。在Perl之后,很多語言都提供了功能強(qiáng)大的字面量功能。雖然其中表現(xiàn)突出的不止JavaScript一種,不過由于它的字面量功能相對來說非常優(yōu)秀,所以作為語言特點(diǎn)之一列舉于此。
函數(shù)式編程:
最后介紹一下函數(shù)式編程。函數(shù)式編程是一種歷史悠久,而又在最近頗為熱門的話題。函數(shù)式編程在面向?qū)ο笠辉~誕生以前就已經(jīng)存在,不過它在很長一段時(shí)間里都被隱藏于過程式編程(面向?qū)ο笠彩沁^程式編程的一種)的概念之下。但是這種狀況正在改變,JavaScript就是改變這一過程的一部分,盡管JavaScript能直接支持的程序設(shè)計(jì)范式在本質(zhì)上還是過程式的,但由于具備了匿名函數(shù),可以把函數(shù)作為對象來使用,所以同時(shí)也能夠支持函數(shù)式編程。
2.2 關(guān)于編排格式 2.3 變量的基礎(chǔ) 2.3.1 變量的使用方法:

變量的作用是給某一個(gè)值或者對象標(biāo)注名稱。
使用關(guān)鍵字 var 就可以對變量進(jìn)行聲明。

var foo;

現(xiàn)階段先理解為變量名可以使用任意的英文字母即可,后面會更近一步進(jìn)行說明。通過賦值運(yùn)算符 = 為變量賦值,左值:變量名 右值:值。

foo = "abc";

變量的聲明和賦值也可同時(shí)進(jìn)行。在聲明變量同時(shí)為其賦值是一種較好的編程風(fēng)格。(不是習(xí)慣么?)

var foo = "abc";

JavaScript中的變量沒有變量類型(int,float)。因?yàn)闆]有變量類型,所以對于同一個(gè)變量。既可以賦值字符串,也可以是數(shù)字。不過通常情況下,以這種方式使用變量并不是好習(xí)慣,所以盡可能避免這樣的代碼。

var foo;
foo = "abc";        // 字符串"abc"賦值給變量foo
foo = 123;          // 將數(shù)值123賦值給變量foo

在表達(dá)式中寫上某個(gè)變量名后就能獲取該變量的值。(或者說把該變量作為右值使用?)

var n = 7;        // 將數(shù)值7賦值給變量n
n+1;              // 獲取變量n的值,并加上1
8

嚴(yán)格來說,語句中的變量,對于左值和右值是有所不同的。左值指的是賦值表達(dá)式 = 左側(cè)的變量名,右值指的是賦值表達(dá)式 = 右側(cè)、或是在賦值表達(dá)式之外的其他表達(dá)式中出現(xiàn)的變量名。右值中的變量是所要用于賦值的值,而左值中的變量則是將要被賦值的對象。言簡意賅的說,對于左值和右值,將其理解為被賦值的對象和所賦值的來源即可。

聲明但未進(jìn)行賦值的變量,其值為Undefined(之后會說明undefined的含義),讀取這類值不會引起運(yùn)行時(shí)的錯(cuò)誤。需要注意的是,大部分情況下,讀取undefined值都是產(chǎn)生錯(cuò)誤的根源。

斯認(rèn)為:本身undefined的存在沒有錯(cuò)誤,但是存在讀取引發(fā)錯(cuò)誤的隱患。

var foo;
console.log(foo);        // 變量foo的值為 undefined

如果讀取沒有被聲明的變量(即作為右值使用該變量),就會引發(fā) ReferenceError 異常;如果將其作為左值使用,即作為賦值對象使用,則不會發(fā)生錯(cuò)誤。

console.log(x);        // ReferenceError: x is not defined
2.3.2 常量

ECMAScript標(biāo)準(zhǔn)沒有規(guī)定常量的聲明語法。不過在JavaScript的自定義增強(qiáng)功能中,是可以對常量進(jìn)行聲明的。由于是自定義的增強(qiáng)功能,因此沒有明確的規(guī)范。

如果需要聲明一個(gè)常量,使用const關(guān)鍵字,可以作為常量名使用的字符和變量是相同的,不過習(xí)慣上常量名都以大寫字母表示。

const foo = 7;        // 聲明常量
console.log(foo);

即使給常量再次賦值,這個(gè)常量的值不會發(fā)生改變。其實(shí),對常量再次賦值應(yīng)該算是一種錯(cuò)誤,但在實(shí)際中并不會出錯(cuò),對此多家注意。

const foo = 7;        
foo = 10;            // 對常量再次賦值
console.log(foo);    // result:7

如果聲明時(shí)沒有對常量進(jìn)行賦值,它的值就是undefined,處理方式和變量相同。

發(fā)現(xiàn):如果聲明常量同時(shí)沒有對其初始化(賦值),則今后任何賦值都不會起作用,也就是說這個(gè)常量不被回收的話其值永遠(yuǎn)是undefined。
const foo;
console.log(foo)
foo = 10;
console.log(foo)        // result: undefined
2.4 函數(shù)基礎(chǔ) 2.4.1 函數(shù)的定義

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/82543.html

相關(guān)文章

  • 《JS編程全解》—— 回調(diào)函數(shù)

    摘要:事件驅(qū)動正是一種回調(diào)函數(shù)設(shè)計(jì)模式。由于不支持多線程,所以為了實(shí)現(xiàn)并行處理,不得不使用回調(diào)函數(shù),這逐漸成為了一種慣例。上面的回調(diào)函數(shù)只是單純的函數(shù)而不具有狀態(tài)。如果回調(diào)函數(shù)具有狀態(tài),就能得到更為廣泛的應(yīng)用。 回調(diào)函數(shù)模式 回調(diào)函數(shù)與控制反轉(zhuǎn) 回調(diào)函數(shù)是程序設(shè)計(jì)的一種方法。這種方法是指,在傳遞了可能會進(jìn)行調(diào)用的函數(shù)或?qū)ο笾?,在需要時(shí)再分別對其進(jìn)行調(diào)用。由于調(diào)用方與被調(diào)用方的依賴關(guān)系與通常...

    mj 評論0 收藏0
  • 全解小程序猜數(shù)字游戲 04《 程序員變現(xiàn)指南之 微信&QQ 小程序 真的零基礎(chǔ)開發(fā)寶

    摘要:此時(shí)使用設(shè)置當(dāng)前值中的猜測值為輸入框的內(nèi)容值。接著判斷猜測之是否大于或者小于,因?yàn)檫@兩者是范圍之外不再進(jìn)行判斷,所以最開始使用進(jìn)行判斷不能小于不能大于以上代碼中表示調(diào)用微信小程序接口彈出提示,傳入的參數(shù)為提示內(nèi)容。 ...

    不知名網(wǎng)友 評論0 收藏0
  • lisahost:美國新的全解鎖原生IP 206段上架開售,支持tiktok等,季付122元起

    摘要:怎么樣好不好最近美國新的全解鎖原生段上架開售,支持等,原一期產(chǎn)品可加價(jià)更換年付免費(fèi)更換,美國原生段仍有少量剩余,套餐原價(jià)基礎(chǔ)上每月加價(jià)元可更換美國原生,更換的為純凈新分配美國段,絕對傳家寶產(chǎn)品,支持解鎖美區(qū)游戲,,等,同時(shí)支持。lisahost怎么樣?lisahost好不好?lisahost最近美國新的全解鎖原生IP 206段上架開售,支持tiktok等,原CN2一期產(chǎn)品可加價(jià)更換(年付免費(fèi)...

    xingqiba 評論0 收藏0
  • JavaScript 中優(yōu)雅的實(shí)現(xiàn)順序執(zhí)行異步函數(shù)

    摘要:順序執(zhí)行異步函數(shù)異步為帶來非阻塞等優(yōu)勢的同時(shí),同時(shí)也在一些場景下帶了不便,如順序執(zhí)行異步函數(shù),下面總結(jié)了一些常用的方法。 火于異步 1995年,當(dāng)時(shí)最流行的瀏覽器——網(wǎng)景中開始運(yùn)行 JavaScript (最初稱為 LiveScript)。 1996年,微軟發(fā)布了 JScript 兼容 JavaScript。隨著網(wǎng)景、微軟競爭而不斷的技術(shù)更新,在 2000年前后,JavaScript ...

    monw3c 評論0 收藏0
  • lisahost:新的全解鎖美國原生IP VPS;206段上架開售,美國CN2?GIA,支持tikt

    lisahost怎么樣?lisahost最近美國新的全解鎖原生IP 206段上架開售,支持tiktok等,原CN2一期產(chǎn)品可加價(jià)更換(年付免費(fèi)更換),美國原生ip 163段仍有少量剩余,套餐原價(jià)基礎(chǔ)上每月加價(jià)20元可更換美國原生IP,更換的IP為純凈新分配美國IP段,絕對傳家寶產(chǎn)品,支持解鎖美區(qū)游戲,HULU, DISNEY, StartZ, HBO MAX,ESPN, Amazon Prime ...

    FuisonDesign 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<