📅  最后修改于: 2023-12-03 15:27:40.176000             🧑  作者: Mango
在 JavaScript 中,以下哪个语句会抛出 ReferenceError
异常?
A. const a = 1; a = 2;
B. function foo() {}; foo = 1;
C. let b; console.log(b);
D. console.log(c);
A. const a = 1; a = 2;
由于 a
使用了 const
声明,所以 a
的值无法被重新赋值。因此,这段代码会抛出 TypeError
异常:Uncaught TypeError: Assignment to constant variable.
。
B. function foo() {}; foo = 1;
虽然 function
关键字可以创建一个函数对象,但是 foo
这个变量指向的是这个函数对象的引用,因此,foo = 1
会改变 foo
这个变量的值,使其指向一个新的值为 1
的对象。这段代码运行不会抛出异常。
C. let b; console.log(b);
在这段代码中,b
被声明为 undefined
,因此 b
的值为 undefined
。这段代码运行不会抛出异常。
D. console.log(c);
由于 c
没有被声明,所以访问 c
会抛出 ReferenceError
异常:Uncaught ReferenceError: c is not defined.
。
因此,选项 D 正确。