在JS中,您可以这样做:
(function() {
var x = 7;
})();
console.log(x);
这将记录未定义,因为x仅在其自身的小范围内定义。
在java中做同样事情的原始/最佳/正常方式是什么?
不是这个,因为我觉得它看起来很丑陋:
...
public static void main(String[] args) {
do {
int x = 7;
} while (false) {}
System.out.println(x);
}
...
感谢。
答案 0 :(得分:2)
JavaScript是一种解释型语言,因此您将在运行时遇到这些错误。不同,Java是一种编译语言,因此编译器在编译时捕获了这种错误。
在运行时Java程序中不可能出现此错误。
答案 1 :(得分:-1)
如果你想要x是私有的,那么你可以将它声明为私有 //如果你不希望x是私有的话,你可以给出任何访问说明符
private int x;
and can initialize it later
as
public static void main(String[] args) {
do {
x = 7;
} while (false) {}
System.out.println(x);
}
您的代码:
public static void main(String[] args) {
do {
int x = 7;
} while (false) {}
System.out.println(x);
}
这将抛出未定义的异常,因为该变量是在do内部定义的,因此它的作用域只有在执行循环时才能进行,因此无法在外部访问。