2015-07-08 12 views
5

Vì một "cuộc chiến tôn giáo" tại nơi làm việc hiện tại của tôi, tôi đã quyết định nghiên cứu lịch sử của tính năng ASI của javascript.Tại sao chèn dấu chấm phẩy tự động (ASI) được thêm vào javascript?

Nhưng tôi gặp khó khăn khi tìm hiểu lý do và thời điểm ASI được giới thiệu với javascript.

Dường như nó đã là một tính năng mãi mãi, nhưng có lý do cụ thể nào để có hai cách để chấm dứt một câu lệnh trong javascript không?

Một số nguồn mô tả ASI là một tính năng sửa lỗi, có nghĩa là bỏ qua các dấu chấm phẩy là thực hành không tốt.

Có bất kỳ tác động nào về hiệu suất khi dựa vào ASI không?

Cá nhân tôi thích dấu chấm phẩy vì nó làm cho ý định rõ ràng hơn, nhưng sở thích cá nhân không phải là một đối số khả thi trong bất kỳ cuộc thảo luận nghiêm túc nào.

+1

Đó là lạ khi biết rằng liệu có nên sử dụng dấu chấm phẩy trong Javascript vẫn là một cuộc tranh luận. – Nit

+2

Nếu bạn muốn có câu trả lời cho câu hỏi như vậy, hãy truy cập diễn đàn nơi tác giả gốc có thể phản hồi. Hoặc chỉ [* thực hiện tìm kiếm *] (https://www.google.com.au/search?client=safari&rls=vi&q=brendan+eich+why+automatic+semicolon+insertion&ie=UTF-8&oe=UTF-8&gfe_rd= cr & ei = GwudVbqjIaTu8wfLy5foCA). – RobG

+0

Nếu bạn chiến đấu với một cuộc chiến tôn giáo thì bạn nên có lập luận của riêng mình - google cho lập luận là, imho, một điểm mà đối số của bạn không có điểm mạnh .. cuộc chiến tranh chưa bao giờ dễ dàng - ngoại trừ bạn có điểm mạnh;) – Stefan

Trả lời

4

Câu hỏi hay!

Brenden Eich đã thiết kế ngôn ngữ lập trình JavaScript ban đầu, và tôi nghĩ rằng nó là công bằng khi nói rằng ông sẽ đồng ý rằng chèn dấu chấm phẩy tự động là một lỗ hổng thiết kế trong ngôn ngữ.

Chúng ta không nên đổ lỗi cho anh ấy. Ông đã thiết kế ngôn ngữ trong khoảng thời gian 10 ngày vào năm 1995, không có ý tưởng rằng 20 năm sau nó sẽ trở thành (có lẽ) ngôn ngữ máy tính quan trọng nhất trên hành tinh này.

Trong bài viết sau anh ấy nói "Tôi ước gì tôi đã làm cho dòng mới quan trọng hơn trong JS trở lại trong mười ngày đó vào tháng 5 năm 1995."

https://brendaneich.com/2012/04/the-infernal-semicolon/

đọc trên ... :)

+1

Tôi đoán rằng nó không nhận được gần hơn với một câu trả lời thực sự hơn này. Cảm ơn, tôi đã gặp sự cố khi tìm kiếm điều này trên google ... – EJTH

+1

Làm cho dòng mới * "quan trọng hơn" * hoàn toàn không gợi ý rằng anh ta hối tiếc về quyết định của ASI. Thực ra nó chỉ là đối diện; nó cho thấy rằng ông đứng đằng sau quyết định đó nhưng muốn có chỗ ở tốt hơn cho nó bằng ngôn ngữ. Nếu không có ASI, dòng mới không có ý nghĩa. –

+0

@ user1106925 huh, trong bài đăng đó anh ấy nói: "hãy cẩn thận không sử dụng ASI như thể nó đã cho JS các dòng mới đáng kể." nó khá rõ ràng nếu bạn đọc nó mà anh ấy nghĩ rằng lạm dụng ASI là một ý tưởng tồi. – Spongman

Các vấn đề liên quan