在 Firefox 控制台而不是 Chrome 控制台中重新声明 class 时出错

Error when redeclaring class in Firefox console but not in Chrome console

class Picture {
    constructor(icon) {
        this.icon = icon

    }
}

当我在 Chrome 控制台中两次 运行 这段代码时,它不会抛出任何错误。 但是当我在 Firefox 控制台中尝试 运行ning 两次时,它显示 Uncaught SyntaxError: redeclaration of let Picture。为什么浏览器的行为不同?

A class 无法重新定义。它实际上是一个块范围变量。

If you're experimenting with code in a web browser, such as the Firefox Web Console (Tools > Web Developer > Web Console) and you 'Run' a definition of a class with the same name twice, you'll get a SyntaxError: redeclaration of let ClassName;

MDN docs

chrome 控制台允许重新声明 let/const。 运行 下面的语句两次:

let x = 2;

and this link from Chrome blog

但不允许在同一控制台行内重新声明。