Javascript: 4 trở ngại khi mới bắt đầu học

Javascript: 3 trở ngại khi mới bắt đầu học

JavaScript (JS) là một ngôn ngữ lập trình thường được sử dụng trong phát triển web và là một kỹ năng cần có đối với bất kỳ web developer nào. Tuy nhiên, việc học JS có thể là một thử thách đối với nhiều người mới bắt đầu. Trong bài viết này, chúng ta sẽ khám phá một số khó khăn mà người mới học JS có thể gặp phải lần đầu tiên.

Cú pháp

Cú pháp khó nhớ

Cú pháp trong JavaScript có thể rắc rối lúc đầu vì nó có nhiều dấu ngoặc đơn, ngoặc kép và dấu ngoặc nhọn. Cú pháp này có thể mất một thời gian để quen với nó.

const person = {
  name: 'John',
  age: 30,
  address: {
    street: '123 Main St',
    city: 'Anytown',
    state: 'CA'
  }
};

function greet(name) {
  console.log(`Hello, ${name}!`);
}

if (person.age >= 18) {
  greet(person.name);
}

Trong ví dụ trên, đoạn code có nhiều dấu ngoặc đơn, ngoặc kép và dấu ngoặc nhọn để định nghĩa đối tượng person, hàm greet và câu lệnh điều kiện if.

Phân biệt chứ in hoa và chữ thường

Trong JavaScript, khi đặt tên cho biến, chúng ta cần phân biệt chữ hoa và chữ thường. Nếu chúng ta viết tên biến hoa thay vì viết thường (hoặc ngược lại), thì chúng ta sẽ có hai biến khác nhau với hai giá trị khác nhau. Điều này có thể dẫn đến những lỗi không mong muốn nếu chúng ta không cẩn thận trong việc sử dụng tên biến.

let greeting = 'Hello';
let Greeting = 'Hi';

console.log(greeting); // Hello
console.log(Greeting); // Hi

Trong ví dụ trên, chúng ta có hai biến với tên khác nhau chỉ bằng một chữ cái in hoa và in thường. Tuy nhiên, do JavaScript phân biệt chữ hoa – chữ thường, nó hiểu rằng hai biến này là khác nhau và có giá trị khác nhau. Khi chúng ta hiển thị giá trị của hai biến bằng lệnh console.log(), chúng ta sẽ thấy được hai kết quả khác nhau. Nếu chúng ta không để ý và sử dụng tên biến nhầm trong các câu lệnh khác nhau, thì sẽ dẫn đến lỗi không mong muốn.

Dấu chấm phẩy

Dấu chấm phẩy: JavaScript sử dụng dấu chấm phẩy để phân tách các câu lệnh. Bỏ qua dấu phẩy cuối câu lệnh có thể gây ra lỗi.

let a = 1
let b = 2
console.log(a + b)

Trong đoạn mã này, chúng ta khởi tạo hai biến ab với giá trị lần lượt là 1 và 2. Để hiển thị tổng của hai biến này, chúng ta sử dụng lệnh console.log(). Tuy nhiên, nếu bỏ qua dấu chấm phẩy cuối câu lệnh thì code sẽ không chạy được và sẽ báo lỗi. Do đó, để tránh gặp phải lỗi không mong muốn, chúng ta nên luôn đặt dấu chấm phẩy ở cuối câu lệnh trong JavaScript.

let a = 1;
let b = 2;
console.log(a + b);

Hàm

Trong JavaScript, ta có thể viết hàm theo nhiều cách khác nhau để thực hiện cùng một chức năng. Tuy nhiên, đối với những người mới bắt đầu học JavaScript, việc hiểu và sử dụng các cách viết hàm khác nhau có thể gây khó khăn và nhầm lẫn.

Cách viết hàm thông thường

function sum(a, b) {
  return a + b;
}

Cách viết hàm bằng biểu thức hàm

const sum = function(a, b) {
  return a + b;
}

Cách viết hàm bằng Arrow function

const sum = (a, b) => {
  return a + b;
}

JavaScript cho phép viết hàm theo nhiều cách khác nhau, tuy nhiên điều này có thể gây khó khăn và nhầm lẫn cho người mới bắt đầu học. Chính vì vậy, khi học lập trình JavaScript, cần tìm hiểu và nắm rõ từng cách viết hàm để sử dụng linh hoạt và hiệu quả hơn.

Đối tượng và mảng

JavaScript sử dụng đối tượng và mảng rất nhiều, việc hiểu cú pháp của chúng và cách sử dụng chúng có thể làm khó khăn cho người học.

Ví dụ: trong JavaScript, để tạo một đối tượng, ta sử dụng cú pháp như sau:

const person = {
  firstName: 'John',
  lastName: 'Doe',
  age: 30,
  hobbies: ['reading', 'music', 'sports'],
  address: {
    street: '123 Main St',
    city: 'New York',
    state: 'NY',
    zipCode: '10001'
  }
};

Để truy cập các thuộc tính của đối tượng, ta có thể sử dụng dấu chấm (.) hoặc dấu ngoặc vuông ([]). Ví dụ:

console.log(person.firstName); // John
console.log(person['lastName']); // Doe
console.log(person.hobbies[0]); // reading
console.log(person.address['zipCode']); // 10001

Tương tự, để tạo một mảng, ta sử dụng cú pháp như sau:

const numbers = [1, 2, 3, 4, 5];

Để truy cập phần tử của mảng, ta sử dụng chỉ số (index) bắt đầu từ 0. Ví dụ:

console.log(numbers[0]); // 1
console.log(numbers[2]); // 3
console.log(numbers[numbers.length - 1]); // 5

Đối tượng và mảng là những thành phần quan trọng của JavaScript và hiểu cách sử dụng chúng có thể làm khó khăn cho người học, đặc biệt là khi xử lý các đối tượng và mảng lớn và phức tạp. Tuy nhiên, việc nắm vững cú pháp và cách sử dụng chúng sẽ giúp cho quá trình lập trình trở nên dễ dàng và hiệu quả hơn.

Lập trình bất đồng bộ (Asynchronous Programming)

Một thử thách khác mà người mới bắt đầu có thể đối mặt khi học JS là lập trình bất đồng bộ. Lập trình bất đồng bộ là một phương pháp viết mã cho phép thực hiện nhiều nhiệm vụ cùng một lúc, điều này có thể khá khó hiểu đối với những người không quen với nó.

Hãy tưởng tượng bạn muốn viết một chương trình JS để tải ảnh lên trang web. Trong quá trình tải lên, bạn muốn hiển thị một biểu tượng chờ, nhưng bạn không muốn người dùng phải chờ đợi cho đến khi ảnh được tải hoàn toàn trước khi xem được trang web.

Để giải quyết vấn đề này, bạn có thể sử dụng lập trình bất đồng bộ. Thay vì đợi cho đến khi ảnh được tải hoàn toàn trước khi hiển thị biểu tượng chờ, bạn có thể hiển thị biểu tượng chờ ngay lập tức và cho phép quá trình tải ảnh được thực hiện đồng thời. Khi ảnh tải hoàn tất, trang web sẽ được cập nhật với ảnh mới.

Debugging

Debug JavaScript có thể là một thách thức lớn đối với người mới bắt đầu. Vì JS là một ngôn ngữ thông dịch, việc tìm lỗi khó khăn hơn so với các ngôn ngữ biên dịch khác. Hơn nữa, JS còn có nhiều đặc điểm riêng của từng trình duyệt, gây ra nhiều khó khăn trong việc gỡ lỗi. Tuy nhiên, với kinh nghiệm và kiến thức, việc gỡ lỗi JS sẽ trở nên dễ dàng hơn và bạn có thể tận dụng các công cụ hỗ trợ để giúp quá trình này trở nên hiệu quả hơn.

Giả sử bạn đang phát triển một ứng dụng web và bạn muốn thêm một chức năng để hiển thị danh sách các sản phẩm mà người dùng đã thêm vào giỏ hàng. Tuy nhiên, khi bạn thêm code JavaScript để hiển thị danh sách này, nó không hoạt động như mong đợi. Bây giờ, bạn cần phải xác định nguyên nhân của sự cố này.

Bạn có thể sử dụng Inspect Element của Chrome hay trên bất cứ trình duyệt nào, kiểm tra phần console xem có thông báo lỗi nào không.

javascript: error in console

Phần lỗi đa phần sẽ được hiển thị với chữ màu đỏ, từ thông báo đó bạn có thể xác định được nguyên nhân, dòng code nào gây ra lỗi và khắc phục. Với sự trợ giúp từ Google, Stackoverflow hay thậm chí là ChatGPT, việc sửa lỗi sẽ dễ dàng hơn

JS luôn được cập nhật và phát triển

JavaScript là một ngôn ngữ phát triển nhanh chóng và các phiên bản mới được phát hành thường xuyên. Theo kịp các bản cập nhật mới nhất có thể là một thách thức, đặc biệt đối với những người mới bắt đầu.

Nếu mới học JS, bạn có thể được dạy làm một vòng lặp như thế này

for(var i = 0; i < 10; i++) {
  console.log(i);
}

Tuy nhiên, trong ES6, chúng ta có thể sử dụng vòng lặp for…of để lặp qua các phần tử trong một mảng như sau:

const array = [1, 2, 3, 4, 5];

for(const element of array) {
  console.log(element);
}

Sử dụng vòng lặp for…of trong JavaScript giúp việc lặp qua các phần tử trong mảng trở nên đơn giản và hiệu quả hơn. Tuy nhiên, nếu bạn đã quen với vòng lặp for trong phiên bản cũ của JavaScript, việc học lại và cập nhật để sử dụng vòng lặp for…of có thể tốn nhiều thời gian và đôi khi gây khó khăn cho người mới bắt đầu học JavaScript.

Kết luận

Học JavaScript có thể gặp khó khăn, đặc biệt đối với những người mới bắt đầu. Tuy nhiên, nếu bạn kiên trì và có lòng nhiệt tình, bạn có thể dễ dàng trở thành chuyên gia trong lĩnh vực này. Bằng cách đối mặt và vượt qua những khó khăn có thể gặp phải khi học JS, bạn có thể chuẩn bị tốt hơn và đạt được thành công trong quá trình học tập.

Có thể bạn thích

Hãy comment ý kiến của bạn