if(true) {
let m = "yo";
console.log(m);
}
console.log(m)
Output:Thứ tự thực thi JavaScript: tại sao điều này lại có hiệu lực sau khi mã theo sau nó?
ReferenceError: m is not defined
yo
Vì vậy, các mã trên dòng 4 đang được thực hiện sau khi mã trên dòng 8.
Liệu việc sử dụng của tôi let
đã bất cứ điều gì để làm với điều này?
EDIT: Sau khi đọc nhận xét, tôi nhận ra rằng điều này có thể là do thời gian chạy của tôi. Đây là cách tôi nhìn thấy nó trong Firefox đêm:
EDIT 2: Nếu điều này thực sự chỉ là thời gian chạy của tôi, sau đó là có ý nghĩa đối với mã sản xuất vì một cái gì đó như thế này? Hành vi không nhất quán giữa các trình duyệt? Làm thế nào để tôi chống lại điều đó?
Bạn đang chạy ứng dụng này trong Chrome? – Ben
[Tôi không thể sao chép điều đó.] (Http://jsfiddle.net/nxzt5npp/) - và tôi đang xem nó trong phiên bản FF dev. – Andy
Tôi nhận được hành vi này trong Firefox Hàng đêm, bảng điều khiển. –