溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何概括一下7個主要JavaScript概念

發(fā)布時間:2021-09-30 17:12:38 來源:億速云 閱讀:114 作者:柒染 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)如何概括一下7個主要JavaScript概念,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

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

在開發(fā)人員世界中,更高級的主題通常是遙不可及的,并且常常使新開發(fā)者望而卻步。 部分原因是因為他們好像在讀一本外國小說。  字母和單詞可能看起來很熟悉,但是沒有意義。

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

每個術(shù)語本身都是一個主題,但出于篇幅和易讀性的目的,我將其盡可能地簡化為核心思想。

1.不變性

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

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

例如,這是一個突變:

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

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

2.陳述式

無論您按什么順序進行操作,基本規(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)用自身直到滿足特定條件時。

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

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

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

這是一個簡單的潛在遞歸:

function sumProfit(sales){    if(//condition for ending){      return theFinalObjectOrResult;    } else {      //do something. Reduce the condition.      return sumProfit(reducedCondition);    }  }

4.回調(diào)

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

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

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

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

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

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

function waitForMeeeee(someValues, callback){    //do something with someValues    callback(); } waitForMeeeee('The answer is 42', function(){    alert('all done now'); }              );

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

function waitForMeeeee(someValues, callback){    //do something with someValues    callback();  }  function allDone(){    alert('all done now');  }  waitForMeeeee('The answer is 42', allDone);

5.異步

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

暫停的時刻是JavaScript的異步部分。

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

隱式是什么意思? 默認情況下,它返回一個promise。

什么是諾言? 這是告訴您的代碼等待的原因,因為完成某些工作會有所延遲。 例如,您在等待外部API用正確的數(shù)據(jù)響應(yīng)。

為什么這很重要? 因為您可以將then()與異步函數(shù)一起使用。

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

看起來像什么? 這是一個例子:

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

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

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

6.代理

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

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

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

是。 除其他事項外,它通常用作驗證檢查器。

它是如何工作的?

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

有13個可用于代理的陷阱。 您需要對它們進行Google搜索,因為這超出了本文的范圍。

這是一個已實施陷阱的代理示例:

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

代理的功能遠不止于此,但是示例只是一個起點。

7.垃圾收集

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

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

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

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

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

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

以上就是如何概括一下7個主要JavaScript概念,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI