ES6如何使用if语句声明一个新变量? JavaScript
How to use if statement to declare a new variable with ES6? JavaScript
我如何选择使用 let
或 const
声明变量?
例如,可以这样做:
if (variableNotMade) {
var makeVariable
}
但是如何使用 let
或 const
而不是 var
来实现呢?
类似的 post 表明可以这样做:
let makeVariable = variableNotMade ? foo : bar
尽管这种方法只有在您拥有 else
时才真正有效。
是否有合适的方法来实现这一点,还是应该采取不同的方法?
如果你不想要 else 块,你可以这样做
let makeVariable = variableNotMade && foo
但这会将 makeVariable 设置为 false。
所以,如果这不是您特别想要的,您应该使用 deceze♦ 方法。
在我看来,不存在 可选声明 这样的东西。你声明变量然后赋值可以是可选的,如果你可以调用它(最好说是有条件的)。最后检查是否为空。
此外 let
const
和 var
是不同的东西:
let
有一个块作用域,const
是只读的块作用域,最后 var
有一个函数作用域。安全地使用它们涉及更多内容,因为嘿,它是 JS,但这就是摘要。
你不应该"conditionally create variables"。您可以有条件地为变量赋值,但不能有条件地创建它。
以这个例子为例,并假设它会按您预期的那样工作:
if (foo) {
var bar = 'baz';
}
alert(bar);
那么如果 foo
是 false
,那么 bar
不会被创建,然后 alert(bar)
会引发关于未定义变量的错误?!不,这太疯狂了。
这就是为什么 var
声明将被提升并且变量 将 存在,仅具有 undefined
值。这就是为什么 let
和 const
是显式块作用域的原因;他们将存在于他们的街区内,他们不会存在于他们的街区外。所以你永远不会陷入 "conditionally created variable" 不存在的情况。
你想要的大概是:
let foo;
if (bar) {
foo = 'baz';
}
我如何选择使用 let
或 const
声明变量?
例如,可以这样做:
if (variableNotMade) {
var makeVariable
}
但是如何使用 let
或 const
而不是 var
来实现呢?
类似的 post
let makeVariable = variableNotMade ? foo : bar
尽管这种方法只有在您拥有 else
时才真正有效。
是否有合适的方法来实现这一点,还是应该采取不同的方法?
如果你不想要 else 块,你可以这样做
let makeVariable = variableNotMade && foo
但这会将 makeVariable 设置为 false。 所以,如果这不是您特别想要的,您应该使用 deceze♦ 方法。
在我看来,不存在 可选声明 这样的东西。你声明变量然后赋值可以是可选的,如果你可以调用它(最好说是有条件的)。最后检查是否为空。
此外 let
const
和 var
是不同的东西:
let
有一个块作用域,const
是只读的块作用域,最后 var
有一个函数作用域。安全地使用它们涉及更多内容,因为嘿,它是 JS,但这就是摘要。
你不应该"conditionally create variables"。您可以有条件地为变量赋值,但不能有条件地创建它。
以这个例子为例,并假设它会按您预期的那样工作:
if (foo) {
var bar = 'baz';
}
alert(bar);
那么如果 foo
是 false
,那么 bar
不会被创建,然后 alert(bar)
会引发关于未定义变量的错误?!不,这太疯狂了。
这就是为什么 var
声明将被提升并且变量 将 存在,仅具有 undefined
值。这就是为什么 let
和 const
是显式块作用域的原因;他们将存在于他们的街区内,他们不会存在于他们的街区外。所以你永远不会陷入 "conditionally created variable" 不存在的情况。
你想要的大概是:
let foo;
if (bar) {
foo = 'baz';
}