Trong khi cố gắng để gỡ lỗi một số phần bị lỗi JavaScript, tôi tìm thấy một dòng đó trông giống như một sai lầm rõ ràng trong một tập tin nguồn:Tại sao false ++ tạo cú pháp SyntaxError trong Firefox nhưng một tham chiếu trong Chrome?
false++;
Những gì tôi không undestand là lý do tại sao bản Tuyên Bố này cư xử khác nhau trong tất cả các trình duyệt.
- Trong Chrome, tôi nhận được ReferenceError và toàn bộ tập lệnh không được chạy.
- Trong Firefox, tôi nhận được cú pháp SyntaxError và toàn bộ tập lệnh không được chạy.
- Trong Internet Explorer, tôi nhận được cú pháp SyntaxError và tập lệnh chỉ chạy cho đến khi xảy ra lỗi.
Theo thiết kế, các trình duyệt khác nhau có được phép xử lý cùng một JavaScript bị hỏng theo các cách khác nhau không?
Tôi biết lỗi là gì và cách sửa lỗi, nhưng không nên ít nhất là loại lỗi được bắt buộc bởi thông số kỹ thuật?
Thông số nói gì? – Teemu
@Teemu Tôi không biết. Bạn có? – Lynn
Đó phải là lỗi tham chiếu, xem [* ECMA-262 §12.4.1 *] (http://ecma-international.org/ecma-262/7.0/index.html#sec-update-expressions-static-semantics -early-errors): * Đây là lỗi tham chiếu ban đầu nếu IsValidSimpleAssignmentTarget của LeftHandSideExpression là sai. * Toán tử postfix cố gắng sửa đổi giá trị, * false * là không thay đổi nên không phải là một mục tiêu gán đơn giản hợp lệ. – RobG