2017-04-04 14 views
6

Trong quá trình học JavaScript Tôi đã học được rằng Letconst đã được giới thiệu để khắc phục sự cố của Var về phạm vi toàn cầu và cẩu và không đưa ra lỗi nếu được khai báo lại.Có lý do nào không từ bỏ "var" không?

Bây giờ tôi có thể viết mã hoàn toàn mà không cần sử dụng var? hay tôi nên biết về chúng bây giờ và chờ cho đến khi chúng trở nên "chấp nhận" rộng rãi?

Nói cách khác, hiện tại tôi có nên lo lắng về vấn đề tương thích nếu tôi chỉ sử dụng letconst?

+2

'var' vẫn có mục đích: http://stackoverflow.com/questions/762011/whats-the-difference-between-using-let-and-var-to-declare-a-variable. –

+1

Bạn nên lo lắng về vấn đề tương thích với [let] (http://caniuse.com/#search=let) và [const] (http://caniuse.com/#search=const) vì cả hai dường như không được hỗ trợ trong IE10 trở xuống và nhiều trình duyệt khác. – George

+3

@George transpilers tồn tại mà bạn biết. Khả năng tương thích gần như luôn luôn là một cá trích đỏ. –

Trả lời

3

Để trả lời câu hỏi trực tiếp - không, bạn không thể, vì các vấn đề tương thích, như @suraj vui lòng nhắc nhở chúng tôi.

Có nói rằng, trong sự phát triển JS hiện đại bạn đang ngày càng khó có khả năng sử dụng var như letconst có lợi thế rõ ràng, ngoài một số công dụng cụ thể của var và sẽ sử dụng một trong hai BabelJS, nguyên cảo hoặc ngay cả bây giờ Webpack 2 để transpile mã cho khả năng tương thích ngược vì mã sản xuất sẽ được xuất xưởng theo số vanilla JS. Các IDE hiện đại, như WebStorm, thậm chí sẽ lint var theo mặc định trong chế độ ES6 để thay đổi chúng thành let. Đánh giá từ câu hỏi, bạn vẫn đang trong quá trình học JS và bạn đã đặt câu hỏi đúng, vì vậy tôi khuyên bạn nên sử dụng ngày hôm nay letconst để tận dụng lợi thế của ES6, nhưng điều đó sẽ thêm độ phức tạp xử lý các transpilers. Nhưng nếu bạn ổn với điều đó - đây là con đường để đi.

+0

ý tưởng âm thanh transpiler thú vị để thử! –

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