ความสำคัญของการเรียนรู้พื้นฐาน JavaScript ก่อนสำรวจ React & TypeScript

May 03 2023
ในฐานะนักพัฒนาที่มีประสบการณ์ ฉันได้เห็นวิวัฒนาการของ JavaScript ตั้งแต่ภาษาสคริปต์ธรรมดาไปจนถึงโรงไฟฟ้าที่เป็นอยู่ทุกวันนี้ ไลบรารีและเฟรมเวิร์กสมัยใหม่เช่น React ได้ปฏิวัติวิธีที่เราสร้างเว็บแอปพลิเคชัน ทำให้เราสามารถสร้างประสบการณ์ผู้ใช้แบบโต้ตอบ มีประสิทธิภาพ และตอบสนองได้มากขึ้น

ในฐานะนักพัฒนาที่มีประสบการณ์ ฉันได้เห็นวิวัฒนาการของ JavaScript ตั้งแต่ภาษาสคริปต์ธรรมดาไปจนถึงโรงไฟฟ้าที่เป็นอยู่ทุกวันนี้ ไลบรารีและเฟรมเวิร์กสมัยใหม่เช่น React ได้ปฏิวัติวิธีที่เราสร้างเว็บแอปพลิเคชัน ทำให้เราสามารถสร้างประสบการณ์ผู้ใช้แบบโต้ตอบ มีประสิทธิภาพ และตอบสนองได้มากขึ้น อย่างไรก็ตาม สิ่งสำคัญคือต้องจำไว้ว่าเครื่องมือที่มีประสิทธิภาพเหล่านี้สร้างขึ้นจากพื้นฐานของ JavaScript เอง

ภาพถ่ายโดย Lautaro Andreani บน Unsplash

ฉันซาบซึ้งในความสำคัญของการเรียนรู้ JavaScript ก่อนที่จะเข้าสู่ขอบเขตของ React และ TypeScript ให้ฉันแบ่งปันความคิดสนุกๆ สองสามข้อและเหตุผลว่าทำไมวิธีการนี้จึงมีค่ามากในการเดินทางของฉัน พร้อมตัวอย่างโค้ดเพื่ออธิบายประเด็นของฉัน

เรื่องที่ 1: ทำความเข้าใจธรรมชาติอะซิงโครนัส

ฉันจำช่วงเวลาที่ฉันเพิ่งเริ่มต้นและกระตือรือร้นที่จะกระโดดเข้าสู่เครื่องมือและเฟรมเวิร์กล่าสุด ฉันขลุกอยู่ใน React โดยไม่เข้าใจ JavaScript และในไม่ช้าก็พบว่าตัวเองกำลังดิ้นรนเพื่อทำความเข้าใจว่าเกิดอะไรขึ้นภายใต้ประทุน ขณะที่ฉันสร้างแอปอย่างง่าย ฉันไม่เข้าใจว่าทำไมการเรียก API ของฉันจึงกลับมาแบบ "ไม่ได้กำหนด" นี่คือลักษณะของรหัสของฉัน:

// Fetch weather data
fetch("https://api.example.com/weather?location=newyork")
  .then(response => console.log(response.data))
  .catch(error => console.error(error));

// Properly handle the response
fetch("https://api.example.com/weather?location=newyork")
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

เรื่องที่ 2: เว็บไซต์ที่ไม่ตอบสนอง

อีกตัวอย่างที่ชัดเจนมาจากโครงการที่ฉันได้รับมอบหมายให้ปรับปรุงประสิทธิภาพของไซต์ ในตอนนั้น ฉันยังไม่เชี่ยวชาญเกี่ยวกับ event loop ของ JavaScript และฉันใช้เวลาหลายวันในการพยายามหาสาเหตุว่าเหตุใดไซต์จึงช้าและไม่ตอบสนอง นี่คือรหัสที่มีปัญหา:

// Expensive calculations on scroll event
window.addEventListener("scroll", () => {
  expensiveCalculation();
});

// Debounce function
function debounce(func, wait) {
  let timeout;
  return function () {
    clearTimeout(timeout);
    timeout = setTimeout(() => func.apply(this, arguments), wait);
  };
}

// Debounced scroll event
window.addEventListener("scroll", debounce(() => {
  expensiveCalculation();
}, 250));

ตอนนี้เรามาพูดถึง TypeScript กัน เป็นภาษาที่ยอดเยี่ยมที่เพิ่มการพิมพ์แบบคงที่และคุณสมบัติขั้นสูงอื่นๆ ให้กับ JavaScript ทำให้มีประสิทธิภาพและบำรุงรักษาได้มากขึ้น อย่างไรก็ตาม TypeScript เป็นส่วนเสริมของ JavaScript ซึ่งหมายความว่าคุณต้องเข้าใจหลักการสำคัญของ JavaScript ก่อนจึงจะสามารถชื่นชมประโยชน์เพิ่มเติมของ TypeScript ได้อย่างเต็มที่

ลองนึกภาพว่าคุณกำลังทำอาหารรสเลิศโดยไม่รู้ว่าต้องต้มไข่หรือหั่นหัวหอมอย่างไร แม้ว่า TypeScript จะมีฟีเจอร์และเครื่องมือขั้นสูงมากมาย เช่น การพิมพ์แบบสแตติก อินเทอร์เฟซ และคลาส คุณจะพบว่าการใช้สิ่งเหล่านี้อย่างมีประสิทธิภาพนั้นเป็นเรื่องยากหากไม่มีรากฐานที่มั่นคงใน JavaScript

กล่าวโดยสรุป การเรียนรู้ JavaScript ก่อนที่จะสำรวจ React และ TypeScript นั้นคล้ายกับการวางรากฐานที่แข็งแกร่งก่อนที่จะสร้างโครงสร้างที่สวยงาม ด้วยการเรียนรู้พื้นฐานของ JavaScript คุณจะพร้อมรับมือกับความซับซ้อนของ React และ TypeScript ได้ดีขึ้น และท้ายที่สุดจะกลายเป็นนักพัฒนาเว็บที่มีทักษะและหลากหลายมากขึ้น โอบรับการเดินทางและอย่าลืมความสำคัญของรากที่แข็งแรง

ไชโย!