Các câu lệnh javascript được phân tách bằng dấu hai chấm.

Là một nhà phát triển, tôi vẫn đang sử dụng dấu chấm phẩy khi lập trình bằng JavaScript. Với rất nhiều người trong chúng ta đến từ nền tảng C ++, Java hoặc PHP, bạn có thể gọi đó là một thói quen cũ. Nhưng trong những năm gần đây, nhiều người đã bắt đầu tránh dùng dấu chấm phẩy trong khi một số người vẫn tiếp tục sử dụng chúng. Vì vậy, câu hỏi về dấu chấm phẩy đã chia rẽ cộng đồng nhà phát triển JavaScript

Tại sao chúng ta cần sử dụng dấu chấm phẩy trong JavaScript?

Ảnh của Nik Shuliahin 💛💙 trên Bapt

Dấu chấm phẩy trong JavaScript

Theo MDN,

Dấu chấm phẩy không cần thiết sau câu lệnh nếu nó được viết trên dòng riêng của nó. Nhưng nếu muốn có nhiều hơn một câu lệnh trên một dòng, thì chúng phải được phân tách bằng dấu chấm phẩy

Vì vậy, dấu chấm phẩy (;) được sử dụng ở cuối để phân tách các câu lệnh trong JavaScript. Ở một số nơi, dấu chấm phẩy là bắt buộc nhưng nó thêm chúng ở hậu trường. Điều này đưa chúng ta đến quy trình Chèn dấu chấm phẩy tự động (ASI)

Chèn dấu chấm phẩy tự động (ASI) trong JavaScript là gì?

ECMAScript có các quy tắc để tự động chèn dấu chấm phẩy (ASI) vào cuối câu lệnh. Trình phân tích cú pháp JavaScript sẽ tự động thêm dấu chấm phẩy khi phân tích cú pháp mã nguồn

Báo cáo bị ảnh hưởng bởi ASI

Việc chèn dấu chấm phẩy tự động ảnh hưởng đến các câu lệnh bên dưới. Vì vậy, hãy xem xét các câu dưới đây nếu bạn không sử dụng dấu chấm phẩy

  • // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    0,
    // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    1, câu lệnh biến
  • // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    2,
    // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    3, khai báo mô-đun
  • câu biểu cảm
  • // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    4
  • // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    0,
    // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    1,
    // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    2
  • // is transformed into
    console.log("Month")['March', 'Jan', 'Feb'].sort();
    3

ví dụ

console.log("Month")
['March', 'Jan', 'Feb'].sort()

Bạn sẽ gặp lỗi Uncaught TypeError. Không thể đọc các thuộc tính của không xác định (đọc 'Feb'). Bạn đang gặp lỗi do chuyển đổi được hiển thị bên dưới

// is transformed into
console.log("Month")['March', 'Jan', 'Feb'].sort();

a = b
++c

// is transformed to

a = b;
++c;

Đọc thêm về tài liệu MDN về chèn dấu chấm phẩy tự động

Tại sao chúng ta cần sử dụng dấu chấm phẩy trong JavaScript?

  • Nó sẽ làm cho mã dễ hiểu hơn vì chúng tôi biết khi nào một câu lệnh kết thúc
  • Làm cho mã tổng thể rõ ràng hơn
  • Nó được coi là một cách thực hành tốt nhất theo kiểu cú pháp MDN
  • Trong một số trường hợp, chúng tôi có thể sử dụng nhiều câu lệnh trên một dòng
  • Chúng tôi có thể tránh các câu lệnh bị ảnh hưởng bởi việc chèn dấu chấm phẩy tự động
  • Ngoài ra, dấu chấm phẩy được yêu cầu sử dụng với vòng lặp và câu lệnh trả về

Ví dụ

const numbers = [1, 2, 3, 4, 5]
for (let i = 0; i < numbers.length; i++) {
console.log(numbers[i])
}

Vòng lặp for sẽ không hoạt động nếu không có dấu chấm phẩy

// is transformed into
console.log("Month")['March', 'Jan', 'Feb'].sort();
4

Tại sao chúng ta cần tránh sử dụng dấu chấm phẩy trong JavaScript?

  • Nó cũng làm cho mã rõ ràng hơn (luôn sử dụng một câu lệnh cho một dòng)
  • Ngoài ra, ít mã hơn (chúng tôi đã lưu một lần bấm phím cho dấu chấm phẩy 😊)
  • Dù sao đi nữa, ASI sẽ xử lý dấu chấm phẩy đằng sau hậu trường (vâng, bây giờ chúng ta đã biết về ASI 👍)
  • Cũng phổ biến trong tiêu chuẩn sử dụng kiểu không có dấu chấm phẩy

Định dạng mã đẹp hơn cung cấp tùy chọn để tránh dấu chấm phẩy

Phần kết luận

Ảnh của JESHOOTS. COM trên Bapt

Chúng tôi hiểu rõ rằng dấu chấm phẩy JavaScript không cần thiết ở cuối câu lệnh. Ngoài ra, Chèn dấu chấm phẩy tự động (ASI) thêm dấu chấm phẩy phía sau hậu trường trong quá trình phân tích cú pháp. Nhưng nó có thể gây ra lỗi ASI và ảnh hưởng đến một số tuyên bố của bạn

Vì vậy, bạn có thể tránh sử dụng dấu chấm phẩy nếu bạn biết về khái niệm ASI, sau đó bạn nên chú ý đến khái niệm này khi viết mã

Nhưng nhìn chung, nó hoàn toàn phụ thuộc vào quyết định và sự thuận tiện của bạn. Ngoài ra, có lẽ trên hướng dẫn viết mã của nhóm bạn

Người giới thiệu

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_types
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#automatic_semicolon_insertion
https://flaviocopes.com/javascript-automatic-semicolon-insertion/

Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin miễn phí hàng tuần của chúng tôi. Theo dõi chúng tôi trên Twitter, LinkedIn, YouTube và Discord

Các câu lệnh JavaScript được phân tách bằng gì?

Dấu chấm phẩy ; .

Câu lệnh trong JavaScript là gì?

Các ứng dụng JavaScript bao gồm các câu lệnh có cú pháp phù hợp. Một câu lệnh có thể kéo dài trên nhiều dòng. Nhiều câu lệnh có thể xuất hiện trên một dòng nếu mỗi câu lệnh được phân tách bằng dấu chấm phẩy. Đây không phải là một từ khóa, mà là một nhóm từ khóa

Các loại câu lệnh trong JavaScript là gì?

JavaScript hỗ trợ các câu lệnh lặp for , do while và while cũng như nhãn (bản thân nhãn không phải là một câu lệnh lặp, nhưng . Ngoài ra, bạn có thể sử dụng các câu lệnh break và continue trong các câu lệnh lặp.

Phát biểu nào đúng về JavaScript?

Giải thích. Phát biểu đúng về ngôn ngữ lập trình JavaScript là " Đó là ngôn ngữ kịch bản được sử dụng để làm cho trang web tương tác ".