「在 JavaScript 中用 var, let, 以及 const 有什么差别?」是在前端、JavaScript 面试中常见的考题。在面试时可以先大方向地列点说出异同之处,然后再针对每一个点进行深入说明。以下是以第一人称撰写的参考拟答。
var, let, 以及 const 都是在 JavaScript 用来做变数宣告的保留字,在 JavaScript 早期只有 var,直到 ES2015 (ES6) 时才加入了 let 与 const 。
他们之间主要有 4 个不同
- 在作用域上,var可以是全域、也可以是以函式作为范围;let与const则是以区块作为范围。
- 在宣告上,var可以被重复宣告,但是let与const则不行。
- 在提升上,var宣告的变数会自动初始化值为undefined,因此在宣告前就使用变数,不会出现错误,而会是undefined;但是let与const宣告的变数则不会自动初始化,而是会进到暂时死区(TDZ),因此在let与const宣告变数前使用该变数,会出现错误。
- let与- const在绝多数面向都是