Tôi vừa phát hiện thấy một lỗi trong plugin wordpress của bên thứ 3 có vẻ như đã được gây ra bởi trình chỉnh sửa mã javascript.Tại sao javascript tạo ra các lỗi khác nhau cho chuỗi và chữ với ++?
Mã gốc, tôi tin rằng, đáng lẽ phải là thế này:
this.id = "ui-id-" + ++n;
Thay vào đó nó đã được rút gọn vào:
this.id="ui-id-"+++n;
Điều này dẫn đến các lỗi sau trong Chrome:
Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
Và lỗi tương tự trong Firefox. Khó chịu, trong các plugin của Chrome, các chức năng Javascript của tôi vẫn được tạo thành công nhưng trong Firefox lỗi này khiến các chức năng của tôi không được tạo và plugin của tôi bị lỗi.
var n = 1;
var foo = 10;
var bar = "ID-";
console.log(foo+++n); // results in 11
console.log(foo); // also results in 11
console.log(bar+++n); // results in NaN soft error/warning
console.log ("ID-"+ ++n); // results in ID-2
console.log ("ID-"+++n); // hard error
Tôi không thực sự chắc chắn những gì câu hỏi để hỏi ở đây -
- Tại sao +++ luôn được hiểu là ++ +?
- Bộ lọc nào gây ra lỗi này?
- Tại sao firefox xử lý lỗi này nghiêm trọng hơn Chrome và khiến các hàm javascript của riêng tôi trong Wordpress không thể được tạo?
- Tại sao thanh ++ bị lỗi mềm (NaN) nhưng "ID -" ++ bị lỗi nặng?