JS/TS中能否在if语句括号内声明const变量?
在JS/TS中能否像PHP一样在if语句括号内声明变量?
在PHP里,我们可以直接在if的条件括号里赋值并使用变量,写法如下:
if ($myvar = myfunction()) { // 在这里使用$myvar }
放到JS/TS里,从ES2021(ES12)版本开始,已经支持这种写法了,你示例里的代码是完全合法的:
if (const myvar = myfunction()) { // 在这里使用myvar }
也可以用let代替const,适合后续需要修改变量的场景:
if (let myvar = myfunction()) { myvar = 'new value'; // 处理逻辑 }
需要注意的是,这种方式声明的变量仅在当前if代码块以及对应的else/else-if代码块内有效,不会污染外部作用域。另外只有当myfunction()返回的是真值(非falsy值)时,if块才会执行,变量也只会在条件成立的块内可访问。
内容的提问来源于stack exchange,提问作者jdion84
相关产品推荐
相关产品推荐

