日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
簡單解釋7個(gè)主要JavaScript概念

術(shù)語的目的是將一個(gè)特定的想法封裝成一個(gè)優(yōu)美而緊湊的詞。 但是,如果您不了解單詞的含義,就會失去意義。

創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)定制網(wǎng)站制作,是成都網(wǎng)站營銷公司,為社區(qū)文化墻提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺程序開發(fā)等。成都網(wǎng)站維護(hù)熱線:18982081108

在開發(fā)人員世界中,更高級的主題通常是遙不可及的,并且常常使新開發(fā)者望而卻步。 部分原因是因?yàn)樗麄兒孟裨谧x一本外國小說。 字母和單詞可能看起來很熟悉,但是沒有意義。

而且很難理解所有內(nèi)容,尤其是如果您必須不斷停下第二個(gè)單詞來弄清楚句子試圖告訴您的內(nèi)容時(shí)。

在本文中,我決定編譯我經(jīng)常發(fā)現(xiàn)自己會為新開發(fā)人員翻譯的前7個(gè)概念。 我希望您發(fā)現(xiàn)他們對成為更好的開發(fā)人員有用。

本文的重點(diǎn)是作為思想的參考/摘要,以幫助您盡快著手解決問題。 每個(gè)術(shù)語本身都是一個(gè)主題,但出于篇幅和易讀性的目的,我將其盡可能地簡化為核心思想。

本書內(nèi)容遠(yuǎn)不止這些,但總的來說,它抓住了每個(gè)單詞試圖傳達(dá)的實(shí)質(zhì)。

希望您發(fā)現(xiàn)它們有用。

感謝您的閱讀!

1.不變性

數(shù)據(jù)形狀不變時(shí)。

因此,如果您有一個(gè)進(jìn)入函數(shù)的對象,則它以完全相同的形式從它中出來。 附加到它的數(shù)據(jù)可以更改,但參數(shù)的數(shù)量,名稱和順序不能更改。

例如,這是一個(gè)突變:

 
 
  1. function changeMe(someObject){ 
  2.   someObject.age = 3; 
  3.   return someObject; 
  4. }
  5. let exampleOne = {"cat": "Tibbers" };
  6. console.log(changeMe(exampleOne));

該函數(shù)更改對象的形狀,這意味著它是可變的。

2.陳述式

無論您按什么順序進(jìn)行操作,基本規(guī)則都可以確保您每次都能獲得相同且正確的結(jié)果。

例如,該數(shù)學(xué)方程式遵循聲明性方法。

(2 x 5) + 8 - 3 = 15

因此,如果您移動順序,您仍將獲得相同的結(jié)果。

- 3 + (2 x 5) + 8 = 158 - 3 + (2 x 5) = 15

在JavaScript編程中,聲明性模式是函數(shù)的順序與最終結(jié)果的構(gòu)造無關(guān)緊要的地方。 您可以按任何順序調(diào)用它們。 順序無關(guān)緊要。

3.遞歸

當(dāng)函數(shù)繼續(xù)調(diào)用自身直到滿足特定條件時(shí)。

不,這不是for循環(huán)。 聽起來可能是這樣,但事實(shí)并非如此。

for循環(huán)是JavaScript的條件方法。 遞歸是一個(gè)不斷調(diào)用自身的完整函數(shù)。

這意味著遞歸有兩個(gè)部分-基于特定條件的調(diào)用和exit子句。 您的退出子句基本上就是在遞歸結(jié)束時(shí)發(fā)生的事情。

這是一個(gè)簡單的潛在遞歸:

 
 
  1. function sumProfit(sales){ 
  2.   if(//condition for ending){ 
  3.     return theFinalObjectOrResult; 
  4.   } else { 
  5.     //do something. Reduce the condition. 
  6.     return sumProfit(reducedCondition); 
  7.   } 
  8. }

4.回調(diào)

回調(diào)是在另一個(gè)函數(shù)執(zhí)行完畢后才執(zhí)行的函數(shù)。

我們?yōu)槭裁葱枰@個(gè)? 因?yàn)镴avaScript是事件驅(qū)動的-意味著它不等待響應(yīng)。 當(dāng)事情以自給自足的方式運(yùn)行時(shí),這無關(guān)緊要。

當(dāng)您開始依賴外部響應(yīng)(例如API)時(shí),情況就變得很嚴(yán)重。 延遲是您的JavaScript代碼發(fā)送請求并將其接收回來所花費(fèi)的時(shí)間。

在JavaScript看來,它已經(jīng)完成了工作-它已成功執(zhí)行了代碼。

但是,實(shí)際上,您仍在等待回應(yīng)。 有時(shí),您會通過諾言或延遲計(jì)時(shí)器迫使代碼冷靜下來,放松一下,等待片刻。 確認(rèn)完成后,您可以調(diào)用callback()函數(shù)。

無論如何,這是回調(diào)的樣子:

 
 
  1. function waitForMeeeee(someValues, callback){ 
  2.   //do something with someValues 
  3.   callback(); }
  4. waitForMeeeee('The answer is 42', function(){ 
  5.   alert('all done now'); }
  6.              );

您還可以抽象出回調(diào),并使其如下所示:

 
 
  1. function waitForMeeeee(someValues, callback){ 
  2.   //do something with someValues 
  3.   callback(); 
  4. }
  5. function allDone(){ 
  6.   alert('all done now'); 
  7. }
  8. waitForMeeeee('The answer is 42', allDone);

5.異步

想想一條直線。 您的JavaScript代碼從一端執(zhí)行到另一端。 但是有時(shí)候,您需要暫停一下,只是在您跑到外部來源搶東西的那一刻。

暫停的時(shí)刻是JavaScript的異步部分。

關(guān)鍵字async還返回隱式的Promise。

隱式是什么意思? 默認(rèn)情況下,它返回一個(gè)promise。

什么是諾言? 這是告訴您的代碼等待的原因,因?yàn)橥瓿赡承┕ぷ鲿兴舆t。 例如,您在等待外部API用正確的數(shù)據(jù)響應(yīng)。

為什么這很重要? 因?yàn)槟梢詫hen()與異步函數(shù)一起使用。

那么()是什么? 您的回調(diào)相當(dāng)于基于承諾的函數(shù),可讓您在承諾完成執(zhí)行后執(zhí)行操作。

看起來像什么? 這是一個(gè)例子:

 
 
  1. async function doSomething(){ 
  2.   //do something there. 
  3.   return 'woot!';}
  4. doSomething().then(function(result){ console.log(result);});

或者,如果您真的想使承諾部分明確:

 
 
  1. async function doSomething(){ 
  2.   //do something there. 
  3.   return Promise.resolve('woot!');
  4. }
  5. doSomething().then(function(result){ console.log(result);});

6.代理

將其視為對象的附加擴(kuò)展。 可以針對已存在的事物創(chuàng)建自定義行為。

在某種程度上,它還充當(dāng)原始對象和其他功能之間的中介。

是。 代理可以更改和處理數(shù)據(jù)。

是。 除其他事項(xiàng)外,它通常用作驗(yàn)證檢查器。

它是如何工作的?

代理包含三個(gè)部分-處理程序,陷阱(即方法)和目標(biāo)。

有13個(gè)可用于代理的陷阱。 您需要對它們進(jìn)行Google搜索,因?yàn)檫@超出了本文的范圍。

這是一個(gè)已實(shí)施陷阱的代理示例:

 
 
  1. let handler = { 
  2.   get: function(theObjectPassed, theObjectName){ 
  3.     //some checking logic 
  4.     console.log(theObjectPassed, theObjectName); 
  5.     return 'all done' ; }
  6. }
  7. let someObject = { a: 1, b: 2};
  8. let valueName = new Proxy(someObject, handler);
  9. console.log(valueName.someObject);

代理的功能遠(yuǎn)不止于此,但是示例只是一個(gè)起點(diǎn)。

7.垃圾收集

一切都占用內(nèi)存。 初始化變量后,將為其分配一點(diǎn)空間。

內(nèi)存僅在調(diào)用時(shí)初始化。 因此,當(dāng)一個(gè)函數(shù)運(yùn)行并且內(nèi)部有變量時(shí),它的存在只會持續(xù)到該函數(shù)需要它的時(shí)間。 它不會停留在周圍。

垃圾收集是清除內(nèi)存的方式。

內(nèi)存泄漏是指由于在全局空間中聲明了變量而沒有進(jìn)行垃圾回收的情況,這會造成污染并占用不必要的空間。

這太多了,您的應(yīng)用程序可能會變慢。

因此,請盡可能保留變量,并使用null取消初始化不需要的內(nèi)容


當(dāng)前文章:簡單解釋7個(gè)主要JavaScript概念
網(wǎng)頁地址:http://www.5511xx.com/article/ccceiec.html