首頁 web前端 js教程 開始 React 之前需要學習的基本 JavaScript 概念

開始 React 之前需要學習的基本 JavaScript 概念

Dec 10, 2024 am 05:34 AM

Essential JavaScript Concepts To Learn Before Starting React

React 是一個流行的 Javascript 函式庫,用於建立現實世界的應用程式。要成為熟練的 React 開發人員,了解一些基本的 Javascript 概念非常重要。對許多人來說,學習 React 似乎很困難,但理解這些基本概念可以簡化學習過程。
在本文中,我將介紹每位開發人員在開始 React 之前應該了解的 15 個基本概念。每個概念都透過範例進行解釋,以顯示其重要性。
如果您剛開始使用 React 或即將探索該程式庫,那麼這篇文章適合您。

15 個 JavaScript 基本概念

1.回呼函數
函數是任何程式的建構塊,允許多次呼叫程式碼而無需重複。
一種類型的函數是回調函數
如果您希望使用者在顯示任何資訊之前點擊瀏覽器中的箭頭,或者希望在從 API 取得資料後立即執行某些程式碼,您可以利用回調的功能。
回調函數在函數或事件發生後執行其任務,並允許控制函數的執行。
它是一個作為參數傳遞給另一個函數的函數,用於指定非同步操作或事件完成後應該發生的情況。

例子

// The callback function
function showText() {
  console.log('The written text should show after 2 seconds.');
}
 function showAfterDelay(callback, delay) {
  setTimeout(callback, delay);
}
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製

2.箭頭函數
ES6 中引入了箭頭函數,可以讓函數語法寫得更簡潔。箭頭函數因其簡潔而在React中被廣泛使用。

例子

const showText = () => {
  console.log('This written text should show after 2 seconds.');
};
const showAfterDelay = (callback, delay) => {
  setTimeout(callback, delay);
};
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製

3.Array.Map() 方法
在 React 中通常不鼓勵更改現有數組,因為這可能會導致不必要的錯誤和效能問題。因此,開發人員採用數組方法。函數式數組方法不會改變原始數組,而是從現有數組傳回一個新數組。
函數式陣列方法之一是 Array.map() 方法。
Array.map() 方法循環遍歷現有陣列並傳回具有相同長度的新陣列。可以對新數組進行更改,而不會對現有數組產生任何影響。

例子

Const BookNumbers = [1,2,3,4];
Const DoubleNumbers = BookNumbers.map((book)=> book *2);
Console.log(DoubleNumbers);
//Output BookNumbers= [2,4,6,8]
登入後複製
登入後複製
登入後複製
登入後複製

4.Array.Filter() 方法
Array.filter() 方法以有趣且合乎邏輯的方式運作。這些方法可用於根據 true 或 false 條件過濾掉數組中的某些元素。
當一條語句為假時,它會自動被過濾掉;當它為真時,它會保留它,使其成為從陣列中刪除不需要的元素的合適方法。

例子

// The callback function
function showText() {
  console.log('The written text should show after 2 seconds.');
}
 function showAfterDelay(callback, delay) {
  setTimeout(callback, delay);
}
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製

5.Array.reduce() 方法
顧名思義,array.reduce() 方法將整個陣列減少為單一值。這是對數組元素求和或分組的最佳方法之一。

3個Reduce方法中的重要關鍵字

  • 初始值(可選):累加器的起始值。如果不提供,則使用第一個陣列元素作為初始值,從第二個元素開始迭代。
  • 累加器(必填):之前迭代的累加結果。
  • 目前值(必填):目前正在處理的元素。

例子

const showText = () => {
  console.log('This written text should show after 2 seconds.');
};
const showAfterDelay = (callback, delay) => {
  setTimeout(callback, delay);
};
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製

6.範本文字
範本文字允許字串包含Javascript變數或任何JavaScript表達式。
它提供了一種在 JavaScript 中使用反引號和帶有大括號 ${}.

的美元創建字串的簡單方法

例子

Const BookNumbers = [1,2,3,4];
Const DoubleNumbers = BookNumbers.map((book)=> book *2);
Console.log(DoubleNumbers);
//Output BookNumbers= [2,4,6,8]
登入後複製
登入後複製
登入後複製
登入後複製

7.三元運算子
三元運算子是條件運算符,提供了一個簡單而簡潔的方式來寫 if..else 語句。
React 不直接支援 if..else 語句,因為它不適合 React 中存在的名為 JSX 的語法表達式。
JSX 是 JavaScript 的語法擴展,允許將 Javascript、CSS 和 React 元件嵌入到 HTML 中。
React 語法更多地被認為是一個表達式而不是一個語句,並且三元作為它合適的運算符。

例子

Const BookNumbers = [1,2,3,4];
Const FilteredNumbers = BookNumbers.filter((book) => book % 2 !== 0 );
Console.log(FilteredNumbers);
// Output 1,3
登入後複製
登入後複製
登入後複製

8.短路和邏輯運算子
邏輯運算子用於將多個條件組合成一個表達式。 JavaScript 中存在的主要邏輯運算子有:

  • AND- 只有當兩個運算元都為 true 時才傳回 true。
  • OR- 如果至少一個操作數為 true,則傳回 true。
  • NOT-反轉其運算元的真值..

短路是邏輯運算子中發生的一種行為,在特定條件下,不會計算第二個操作數,因為整個表達式的結果只能由第一個運算元決定。

短路如何運作

和(&&)

  • 如果第一個運算元為假,則整個運算式為假,因此不評估第二個運算元。
  • 如果第一個運算元為 true,則評估第二個運算元以決定將傳回的值。

或 (||)

  • 如果第一個運算元為 true,則整個運算式為 true,因此不計算第二個運算元。
  • 如果運算元為假,則評估第二個運算元以決定要傳回的值。
// The callback function
function showText() {
  console.log('The written text should show after 2 seconds.');
}
 function showAfterDelay(callback, delay) {
  setTimeout(callback, delay);
}
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製

9.RestSpread 運算子
在實例中,當您想要為現有陣列新增屬性或合併一組現有陣列時,擴充運算子是首選運算子。
擴充運算子 (...) 由 3 個點表示,將陣列擴展為單一元素,並在陣列的開頭使用。它用於:

  • 合併數組
const showText = () => {
  console.log('This written text should show after 2 seconds.');
};
const showAfterDelay = (callback, delay) => {
  setTimeout(callback, delay);
};
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製
  • 複製數組
Const BookNumbers = [1,2,3,4];
Const DoubleNumbers = BookNumbers.map((book)=> book *2);
Console.log(DoubleNumbers);
//Output BookNumbers= [2,4,6,8]
登入後複製
登入後複製
登入後複製
登入後複製
  • 為現有陣列新增屬性
Const BookNumbers = [1,2,3,4];
Const FilteredNumbers = BookNumbers.filter((book) => book % 2 !== 0 );
Console.log(FilteredNumbers);
// Output 1,3
登入後複製
登入後複製
登入後複製
  • 將參數傳遞給函數
const BookNumbers = [1, 2, 3, 4];
const NumberSum = BookNumbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

console.log(sum); // Output: 15
登入後複製
登入後複製

剩餘運算子(...) 也用 3 個點表示,但寫在陣列的最後。它用於從解構物件/陣列中收集多個屬性。

例子

Const NameValue = "Ade";
const NumValue = 5;
const TempLit= `I am ${NameValue}, a ${NumValue} year old girl `
登入後複製

10.選購鏈
可選連結以簡單的方式處理 null 或未定義的值。它用於存取鏈中看似為空或未定義的屬性或任何中間屬性。它將自動被短路並呈現為未定義。理想情況下,如果沒有可選鏈,它會回傳錯誤。
在某些情況下,您不確定物件中是否存在所有值,請考慮使用可選鏈接,因為它是一種提供空值和未定義值檢查的語法。

const BookNumbers = 4;
const result = (BookNumbers % 2 === 0) ? "Even" : "Odd";
console.log(result); 
// Output: "Even"

登入後複製

11.解構數組
當必須從數組同時呼叫多個屬性時,程式碼可能會變得很麻煩。透過解構,可以防止這種情況。
解構允許將數組中的值組裝成不同的變數。
解構可用於

  • 跳過一個元素
  • 巢狀元素
  • 設定預設值。

在開始 React 之前不應該忽略的一個基本概念是解構。

const idVerify = true;
const displayMessage = idVerify && "Identified";

console.log(displayMessage); 
// Output: "Identified"

登入後複製

12.使用不可變數組
陣列可以在 JavaScript 中發生變化,這意味著可以在陣列中新增、刪除或更新屬性。
然而,在 React 中,不變性通常是首選,以保持狀態完整性並確保 React 可以偵測到變更。要在 React 中使用不可變數組,通常使用映射、過濾器和展開運算子等方法來新增、刪除和更新數組中的項目,而無需更改原始數組。

例子

  • 新增項目
// The callback function
function showText() {
  console.log('The written text should show after 2 seconds.');
}
 function showAfterDelay(callback, delay) {
  setTimeout(callback, delay);
}
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製
  • 刪除項目
const showText = () => {
  console.log('This written text should show after 2 seconds.');
};
const showAfterDelay = (callback, delay) => {
  setTimeout(callback, delay);
};
showAfterDelay(showText, 2000);

登入後複製
登入後複製
登入後複製
登入後複製
  • 更新項目
Const BookNumbers = [1,2,3,4];
Const DoubleNumbers = BookNumbers.map((book)=> book *2);
Console.log(DoubleNumbers);
//Output BookNumbers= [2,4,6,8]
登入後複製
登入後複製
登入後複製
登入後複製

13.非同步/等待函數
非同步 JavaScript 控制需要時間才能完成的任務的執行方式。 JavaScript 是一種同步語言,即在單一執行緒中一個接一個地執行程式碼。
在從資料庫取得資料的情況下,在取得完成之前可能需要載入一些程式碼。
透過非同步功能,無需等待操作完成即可執行程式碼,從而提高使用者體驗和整體效能。
在 React 中,您將經常使用應用程式介面 (API),因此,深入了解此功能的工作原理非常重要。

例子

Const BookNumbers = [1,2,3,4];
Const FilteredNumbers = BookNumbers.filter((book) => book % 2 !== 0 );
Console.log(FilteredNumbers);
// Output 1,3
登入後複製
登入後複製
登入後複製

14.承諾
Promises 是指表示非同步操作最終完成或失敗的內建物件。
Promise 存在於以下三種狀態之一:

  • 待處理:初始狀態,既未完成也未拒絕。
  • 已完成:操作成功完成
  • 已拒絕:操作遇到錯誤。

Promise 在 JavaScript 中扮演著重要的角色,這使得它成為一個需要學習的重要概念。它使您能夠編寫更清晰的程式碼、系統地處理錯誤並提高整體效能。

15.使用 try.catch.finally 處理錯誤
有時在資料取得過程中會彈出錯誤,讓您思考如何尋找或修復這些錯誤。
透過使用關鍵字,可以以更結構化的方式處理資料擷取。
Try..catch..finally 區塊是 JavaScript 中強大的錯誤處理結構,無論是否發生錯誤,它都可以成功處理潛在錯誤並執行特定程式碼。
查找程式碼中的某些錯誤可能會很耗時。透過利用這些塊,事情變得很容易。

  • Try - 包含可能引發錯誤的程式碼。
  • Catch - 如果在 try 區塊內拋出錯誤則執行。接收錯誤物件作為參數。
  • 最後-無論是否發生錯誤都執行。

例子

const BookNumbers = [1, 2, 3, 4];
const NumberSum = BookNumbers.reduce((accumulator, currentValue) => accumulator + currentValue, 0);

console.log(sum); // Output: 15
登入後複製
登入後複製

結論

深入了解上面解釋的基本 JavaScript 概念將簡化學習過程,並引導您成為熟練的 React 開發人員。如果您還沒有學習這些概念,請努力學習。歡迎在留言區分享你的建議!

以上是開始 React 之前需要學習的基本 JavaScript 概念的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1655
14
CakePHP 教程
1414
52
Laravel 教程
1307
25
PHP教程
1253
29
C# 教程
1227
24
前端熱敏紙小票打印遇到亂碼問題怎麼辦? 前端熱敏紙小票打印遇到亂碼問題怎麼辦? Apr 04, 2025 pm 02:42 PM

前端熱敏紙小票打印的常見問題與解決方案在前端開發中,小票打印是一個常見的需求。然而,很多開發者在實...

神秘的JavaScript:它的作用以及為什麼重要 神秘的JavaScript:它的作用以及為什麼重要 Apr 09, 2025 am 12:07 AM

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

誰得到更多的Python或JavaScript? 誰得到更多的Python或JavaScript? Apr 04, 2025 am 12:09 AM

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

如何實現視差滾動和元素動畫效果,像資生堂官網那樣?
或者:
怎樣才能像資生堂官網一樣,實現頁面滾動伴隨的動畫效果? 如何實現視差滾動和元素動畫效果,像資生堂官網那樣? 或者: 怎樣才能像資生堂官網一樣,實現頁面滾動伴隨的動畫效果? Apr 04, 2025 pm 05:36 PM

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的演變:當前的趨勢和未來前景 JavaScript的演變:當前的趨勢和未來前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何使用JavaScript將具有相同ID的數組元素合併到一個對像中? 如何使用JavaScript將具有相同ID的數組元素合併到一個對像中? Apr 04, 2025 pm 05:09 PM

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

JavaScript引擎:比較實施 JavaScript引擎:比較實施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

前端開發中如何實現類似 VSCode 的面板拖拽調整功能? 前端開發中如何實現類似 VSCode 的面板拖拽調整功能? Apr 04, 2025 pm 02:06 PM

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...

See all articles