有什么理由不放弃"var"?
Is there any reason not to abandon "var"?
在学习的过程中JavaScript了解到引入Let
和const
是为了修复Var
关于全局作用域和提升不给的问题如果重新声明会出错。
现在我可以不使用 var
完全编写代码吗?还是我现在应该了解它们,等到它们变得广泛 "acceptable"?
也就是说,我暂时只用let
和const
是不是应该担心兼容性问题?
直接回答问题 - 不,你不能,因为兼容性问题,正如@suraj 善意提醒我们的那样。
话虽如此,在现代 JS 开发中,您越来越不可能使用 var
,因为 let
和 const
具有明显的优势,除了 [=10 的一些特定用途之外=] 并将使用 BabelJS、TypeScript 甚至现在的 Webpack 2 来向后转译代码兼容性,因为生产代码将在 vanilla JS 中发布。现代 IDE,如 WebStorm,甚至会在 ES6 模式下默认检查你的 var
,将它们更改为 let
.
从问题来看,你还在学习JS的过程中,你已经问对了问题,所以我建议今天使用let
和const
来利用优势ES6,但这会增加处理转译器的复杂性。但是,如果您对此表示满意 - 这就是要走的路。
在学习的过程中JavaScript了解到引入Let
和const
是为了修复Var
关于全局作用域和提升不给的问题如果重新声明会出错。
现在我可以不使用 var
完全编写代码吗?还是我现在应该了解它们,等到它们变得广泛 "acceptable"?
也就是说,我暂时只用let
和const
是不是应该担心兼容性问题?
直接回答问题 - 不,你不能,因为兼容性问题,正如@suraj 善意提醒我们的那样。
话虽如此,在现代 JS 开发中,您越来越不可能使用 var
,因为 let
和 const
具有明显的优势,除了 [=10 的一些特定用途之外=] 并将使用 BabelJS、TypeScript 甚至现在的 Webpack 2 来向后转译代码兼容性,因为生产代码将在 vanilla JS 中发布。现代 IDE,如 WebStorm,甚至会在 ES6 模式下默认检查你的 var
,将它们更改为 let
.
从问题来看,你还在学习JS的过程中,你已经问对了问题,所以我建议今天使用let
和const
来利用优势ES6,但这会增加处理转译器的复杂性。但是,如果您对此表示满意 - 这就是要走的路。