Javascript 为什么会出现语法错误?
我试图从内部更好地理解提升Javascript 为什么会出现语法错误?,javascript,try-catch,hoisting,Javascript,Try Catch,Hoisting,我试图从内部更好地理解提升try,因此我制作了以下测试用例,但它抛出了一个SyntaxError 这不是我所期望的 console.log(x); console.log(y); console.log(z); var x = 5; try { var y = getY(); } catch(){} console.log(x); console.log(y); console.log(z); function getY(){ throw "ERR"; return 6;
try
,因此我制作了以下测试用例,但它抛出了一个SyntaxError
这不是我所期望的
console.log(x);
console.log(y);
console.log(z);
var x = 5;
try { var y = getY(); } catch(){}
console.log(x);
console.log(y);
console.log(z);
function getY(){
throw "ERR";
return 6;
}
catch
块应捕获错误,否则会触发语法错误。试试这个:
try { var y = getY(); } catch(e){}
此外,您的
z
和x
变量从未定义。块应捕获错误,否则会触发语法错误。试试这个:
try { var y = getY(); } catch(e){}
此外,您的
z
和x
变量从未定义。块应捕获错误,否则会触发语法错误。试试这个:
try { var y = getY(); } catch(e){}
此外,您的
z
和x
变量从未定义。块应捕获错误,否则会触发语法错误。试试这个:
try { var y = getY(); } catch(e){}
此外,
z
和x
变量从未定义。catch
块需要一个参数
catch块需要一个参数
catch块需要一个参数
catch块需要一个参数
错误是什么?错误是什么?错误是什么?错误是什么?错误是什么?这是测试用例的一部分!它是另一个控件的控件,其结果应该是可预测的。我不理解您的评论。因此
var
语句仍将被提升,尽管它被包装在try块中?是的,但您在try
块中只获得了y
。您的另外两个变量z
和x
从未定义,但您正在尝试记录它们。如果有一个全局范围,您将从全局范围中获取它们的值,否则您将获得ReferenceError:x未定义
,这是测试用例的一部分!它是另一个控件的控件,其结果应该是可预测的。我不理解您的评论。因此var
语句仍将被提升,尽管它被包装在try块中?是的,但您在try
块中只获得了y
。您的另外两个变量z
和x
从未定义,但您正在尝试记录它们。如果有一个全局范围,您将从全局范围中获取它们的值,否则您将获得ReferenceError:x未定义
,这是测试用例的一部分!它是另一个控件的控件,其结果应该是可预测的。我不理解您的评论。因此var
语句仍将被提升,尽管它被包装在try块中?是的,但您在try
块中只获得了y
。您的另外两个变量z
和x
从未定义,但您正在尝试记录它们。如果有一个全局范围,您将从全局范围中获取它们的值,否则您将获得ReferenceError:x未定义
,这是测试用例的一部分!它是另一个控件的控件,其结果应该是可预测的。我不理解您的评论。因此var
语句仍将被提升,尽管它被包装在try块中?是的,但您在try
块中只获得了y
。您的另外两个变量z
和x
从未定义,但您正在尝试记录它们。如果有一个全局范围,您将从全局范围中获取它们的值,否则您将获取引用错误:x未定义
您可以在描述中添加代码示例和详细信息吗?包括一个链接是好的。例子更好。如果你这样做了,LMK…你能在描述中添加代码示例和详细信息吗?包括一个链接是好的。例子更好。如果你这样做了,LMK…你能在描述中添加代码示例和详细信息吗?包括一个链接是好的。例子更好。如果你这样做了,LMK…你能在描述中添加代码示例和详细信息吗?包括一个链接是好的。例子更好。如果你这样做,LMK。。。