成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡單解釋7個主要JavaScript概念

開發 前端
術語的目的是將一個特定的想法封裝成一個優美而緊湊的詞。 但是,如果您不了解單詞的含義,就會失去意義。

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

[[322387]]

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

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

在本文中,我決定編譯我經常發現自己會為新開發人員翻譯的前7個概念。 我希望您發現他們對成為更好的開發人員有用。

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

本書內容遠不止這些,但總的來說,它抓住了每個單詞試圖傳達的實質。

希望您發現它們有用。

感謝您的閱讀!

1.不變性

數據形狀不變時。

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

例如,這是一個突變:

 

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

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

2.陳述式

無論您按什么順序進行操作,基本規則都可以確保您每次都能獲得相同且正確的結果。

例如,該數學方程式遵循聲明性方法。

(2 x 5) + 8 - 3 = 15

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

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

在JavaScript編程中,聲明性模式是函數的順序與最終結果的構造無關緊要的地方。 您可以按任何順序調用它們。 順序無關緊要。

3.遞歸

當函數繼續調用自身直到滿足特定條件時。

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

for循環是JavaScript的條件方法。 遞歸是一個不斷調用自身的完整函數。

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

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

 

  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.   }  

4.回調

回調是在另一個函數執行完畢后才執行的函數。

我們為什么需要這個? 因為JavaScript是事件驅動的-意味著它不等待響應。 當事情以自給自足的方式運行時,這無關緊要。

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

在JavaScript看來,它已經完成了工作-它已成功執行了代碼。

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

無論如何,這是回調的樣子:

 

  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.              ); 

您還可以抽象出回調,并使其如下所示:

 

  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代碼從一端執行到另一端。 但是有時候,您需要暫停一下,只是在您跑到外部來源搶東西的那一刻。

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

關鍵字async還返回隱式的Promise。

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

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

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

那么()是什么? 您的回調相當于基于承諾的函數,可讓您在承諾完成執行后執行操作。

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

 

  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. doSomething().then(function(result){ console.log(result);}); 

6.代理

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

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

是。 代理可以更改和處理數據。

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

它是如何工作的?

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

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

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

 

  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); 

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

7.垃圾收集

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

內存僅在調用時初始化。 因此,當一個函數運行并且內部有變量時,它的存在只會持續到該函數需要它的時間。 它不會停留在周圍。

垃圾收集是清除內存的方式。

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

這太多了,您的應用程序可能會變慢。

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

責任編輯:華軒 來源: 今日頭條
相關推薦

2020-05-13 16:54:05

JavaScript開發代碼

2020-03-17 14:53:31

JavaScript面試問題前端

2010-08-04 09:20:31

JavaScript

2020-03-05 08:58:42

JavaScript語言開發

2012-02-20 14:20:44

JavaPlay Framew

2020-03-05 21:40:49

Javascript前端

2020-09-17 12:39:04

云計算云基礎Gartner

2021-07-30 15:43:10

零信任網絡安全網絡攻擊

2013-04-25 09:55:21

進程線程

2019-09-18 15:09:50

進程線程操作系統

2010-03-02 14:30:41

WCF宿主模式

2014-11-11 15:46:54

MapReduce算法

2022-12-26 08:25:16

JavaScriptweb瀏覽器

2023-11-14 16:57:10

2022-10-08 07:36:08

Kubernetes開源容器

2010-05-24 14:06:31

JavaScript

2011-08-04 13:58:45

JavaScript

2012-02-13 13:44:46

JavaScript

2017-07-12 16:45:10

Docker概念鏡像

2023-05-04 23:54:02

JavaScrip代碼技巧
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 美女黄视频网站 | 国产一区二区在线免费观看 | 天天天天操 | 成人深夜福利 | 人人精品| 日一区二区 | 亚洲精品免费在线 | 成人在线视频观看 | 2019中文字幕视频 | 国产日批 | 亚洲一区综合 | 欧美一级毛片在线播放 | 欧美爱爱视频网站 | 亚洲精品久久久 | 免费黄网站在线观看 | 精品久久国产视频 | 欧美一级做性受免费大片免费 | 91精品国产综合久久婷婷香蕉 | 精品99在线 | 久久综合久色欧美综合狠狠 | 亚洲天天干 | 国产美女免费视频 | 九九久久精品 | 亚洲欧美中文日韩在线v日本 | 黄色大片视频 | 国产精品日韩 | 亚洲欧美日韩一区二区 | 国产精品三级久久久久久电影 | 精品国产一区二区久久 | 81精品国产乱码久久久久久 | 不用播放器看的av | 日本高清视频在线播放 | 国产精品久久一区二区三区 | 亚洲欧美激情国产综合久久久 | 在线观看国产 | 国产精品欧美精品日韩精品 | 日韩影院一区 | 成人国产综合 | 免费成人高清在线视频 | 久操伊人 | 91精品国产91久久久久久吃药 |