[英]Const instead of var for function-scoped variables?
我一直在阅读有关“最小特权原则”的信息,对于何时使用let
vs. var
vs. const
感到困惑,尤其是在功能级范围内。
我读到 :
在您知道需要块定义范围的地方使用
let
,并且您已经特别考虑了这些含义。 但是,对于无法轻松进行块作用域定义或不应该被块作用域定义的变量,请继续使用var
。 在现实世界的代码中,某些变量将被适当地限定在整个函数中,而对于那些变量,var
是一个更好的信号。
可以将var
用作函数范围变量的const
吗? 例如:
function foo() {
const a = 10;
if (a > 2) {
let b = a * 3;
console.log(b);
}
if (a > 5) {
let c = a / 2;
console.log(c);
}
console.log(a);
}
代替:
function foo() {
var a = 10;
if (a > 2) {
let b = a * 3;
console.log(b);
}
if (a > 5) {
let c = a / 2;
console.log(c);
}
console.log(a);
}
对于上面的代码,应该使用const
而不是var
或let
因为您使用变量a
来输出新变量 ( b
& c
),而不是操纵或更改变量a
本身。 因此,换句话说,值“ a”在整个条件语句中保持不变。
const
。 var
因为'let'具有重要的作用域机制,而'var'没有所谓的block-scoping 。
let
允许您声明范围仅限于使用它的块,语句或表达式的变量。 这与var关键字不同,该关键字在全局范围内或在整个函数本地定义变量,而不管块范围如何。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.