📌  相关文章
📜  网络技术问题 | JavaScript 课程测验 1 |问题 67(1)

📅  最后修改于: 2023-12-03 15:27:40.176000             🧑  作者: Mango

网络技术问题 | JavaScript 课程测验 1 | 问题 67

问题描述

在 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 正确。

参考资料