là sơ đồ này có đúng không?
No. Ngoài việc được bố trí khủng khiếp, nó gây hiểu nhầm và một phần sai.
Tôi có thiếu gì đó không?
Có. Bước đầu tiên, "cố gắng chuyển đổi A và B thành boolean, chuỗi hoặc số" là sai - đó không phải là bước đầu tiên trong số equality comparison algorithm. Ngoài ra, khi nào để chuyển đổi biến nào thuộc loại nào?
Sau đó, bước tiếp theo phải là loại phân biệt, thay vì liên tục yêu cầu các giá trị giống hệt nhau của một loại cụ thể.
Bước "cuối cùng" Họ có thể (loại) bị ép buộc vào bất kỳ trường hợp nào trong 5 trường hợp cuối cùng không? -> Loại kết hợp "thiếu chi tiết. Tất cả các chi tiết. Phần nào là phần có liên quan nhất của so sánh bình đẳng cẩu thả:
- Loại nào có thể bị ép buộc?
- Loại nào sẽ bị ép buộc?
- Sự ép buộc của các giá trị hoạt động như thế nào?
Và không, sau khi bắt buộc thuật toán bắt đầu khá nhiều ngay từ đầu, không phải với câu hỏi về chuỗi.
Đó cũng là sự hiểu biết của tôi rằng toán tử nhận dạng (===) sẽ hoạt động tương tự, nhưng không cố chuyển A và B sang boolean, số hoặc chuỗi, trong bước đầu tiên.
Đó Bước đầu tiên là không rõ ràng trong các thuật toán thực tế, vì vậy số Trong thực tế, ===
hoạt động giống trừ bước cuối cùng, mà cưỡng ép giá trị thành các loại khác - thay vào đó, false
được trả về.
Chỉnh sửa: Sơ đồ thứ hai của bạn chính xác (mặc dù vẫn có một số quyết định bố cục lạ).
Làm tốt công việc với biểu đồ! –
Không có "toán tử nhận dạng", mặc dù có một toán tử ngang bằng (bình đẳng). Nếu câu hỏi của bạn là "* không mô hình sơ đồ thuật toán so sánh trừu tượng được sử dụng cho toán tử' == '*", câu trả lời là "Không". Nơi tốt nhất để bắt đầu là đặc điểm kỹ thuật: [* Thuật toán so sánh bình đẳng trừu tượng *] (http://ecma-international.org/ecma-262/5.1/#sec-11.9.3). – RobG
Bạn có thể so sánh bài viết [* MSDN *] (http://msdn.microsoft.com/en-us/library/ie/ky6fyhws%28v=vs.94%29.aspx) tương đương với [* MDN * ] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators). – RobG