是否有可能在 ES6 设置的变量中try{}
使用const
严格模式?
'use strict';
const path = require('path');
try {
const configPath = path.resolve(process.cwd(), config);
} catch(error) {
//.....
}
console.log(configPath);
由于configPath
定义超出范围,因此无法删除。看来可行的唯一方法是:
'use strict';
const path = require('path');
let configPath;
try {
configPath = path.resolve(process.cwd(), config);
} catch(error) {
//.....
}
console.log(configPath);
基本上,有什么方法可以const
代替let
这种情况吗?
将变量声明为const
要求您立即将其指向一个值,并且此引用不能更改。
表示您无法在某个位置(之外try
)进行定义,而在其他位置(内)为其赋值try
。
const test; // Syntax Error
try {
test = 5;
} catch(err) {}
另一方面,在try
块内创建它并为其赋值都很好。
try {
const test = 5; // this is fine
} catch(err) {}
但是,它const
是块范围的,就像一样let
,因此,如果您确实在try
块中创建它并为其提供值,则它将仅存在于该范围内。
try {
const test = 5; // this is fine
} catch(err) {}
console.log(test); // test doesn't exist here
因此,如果您需要在之外访问此变量,则try
必须使用let
:
let configPath;
try {
configPath = path.resolve(process.cwd(), config);
} catch(error) {
//.....
}
console.log(configPath);
另外,尽管可能更令人困惑,但是您可以使用var
在内创建变量,try
然后在变量外使用变量,因为var
它的作用范围是函数而不是块(并被提升):
try {
var configPath = path.resolve(process.cwd(), config);
} catch(error) {
//.....
}
console.log(configPath);
问题内容: 我的问题是我必须在try语句中设置变量,否则会出现编译错误。 稍后我需要使用该变量,但现在超出了范围,所以我相信。我在try语句外部初始化了该变量并将其设置为null,我以为可以在外部访问它,但仍然得到了。 下面的代码,其中有很多代码使阅读变得更容易-我知道这是不好的代码,但是我是Servlets的新手,只想看看它与所有活动部件一起运行时应如何工作。 我创建了另一个类,该类调用crea
问题内容: 我最初从大学开始编程,然后学习了vb.net。现在,我决定转向Java并进行一些查询。在vb中,try catch语句的布局如下 但是在Java网站(https://docs.oracle.com/javase/tutorial/essential/exceptions/putItTogether.html)中,我发现在Java中,您使用了两个陷阱,如下所示: 我希望有人能够解释为什么
我是新来的反应,我有一个问题,也许很简单,但我还无法弄清楚。 我有一个调用const组件子组件的const组件父组件,我想要的是将值从父组件传递给子组件,如果值在子组件中被编辑,父组件可以访问编辑后的值。 我想要的是这个,下面的const组件是子组件,它只是渲染一个地图,如果您单击它设置const selectedPotionwith经度和纬度,我希望const组件父组件传递经度和纬度的初始值,每
我有一个在try块中调用setInterval的代码,我清除了代码末尾的间隔,但是如果我的代码捕获和异常,setInterval函数将永远运行。如果我在try块中创建的sqsInterval在捕获中不存在,我如何清除此?
问题内容: 我希望通过以下方式在Java中实现某些功能: …根据变量名设置变量,而无需硬编码变量名并且不使用任何其他数据结构。这可能吗? 问题答案: 这是使用反射实现的方式(我已将函数重命名;针对不同的字段类型有不同的反射函数):
问题内容: 我正在尝试在设置数组之前对要设置的数组进行排序,但是的参数是不可变的,并且会改变值。如何克服这个限制? 为了使这个问题脱离我自己的项目环境,我提出了以下要点: 我收到错误消息,指出该变量不可变,正在尝试对其进行突变。 问题答案: 不能对内部的值进行突变。如果实现观察者,则将新的属性值作为常量参数传递给它。 修改它以使用该怎么办? 在值存储之前被调用。 新值存储后立即调用。 您可以在此处