【问题标题】:Cannot redefine an already declared variable in Javascript console无法在 Javascript 控制台中重新定义已声明的变量
【发布时间】:2020-11-06 05:17:34
【问题描述】:

为什么我可以在浏览器控制台(例如 Chrome)中重新定义变量,但不能在笔记本电脑(Mac)终端上的控制台(节点)中重新定义。

终端节点控制台:

> let varA = varB;
< Uncaught ReferenceError: varB is not defined
> let varB = "bla";
> let varA = varB;
< Uncaught SyntaxError: Identifier 'varA' has already been declared
> varA
< Uncaught ReferenceError: varA is not defined


//dropping let
> varA = varB;
< Uncaught ReferenceError: Cannot access 'varA' before initialization

Chrome 控制台:

> let varA = varB;
< VM510:1 Uncaught ReferenceError: varB is not defined
    at <anonymous>:1:12
(anonymous) @ VM510:1
> let varB = "bla";
< undefined
> let varA = varB;
< undefined
> varA
< "bla"

【问题讨论】:

标签: javascript node.js variables


【解决方案1】:

要初始化一个变量,您可以直接为它分配一个值,例如: name='foo' 或者你可以使用这个关键字声明变量,var,let,const

在您的第一个示例 let varA = varB; 中,您使用 let 关键字声明了一个变量,但您分配给它和未声明的变量 来自 MDN documentation

尝试访问未声明的变量会导致抛出 ReferenceError 异常

正如您将在此示例中看到的,如果您在尝试访问它的值之前声明变量,它不会出现错误,但如果您尝试打印它的值,您会得到 undefined,因为这是 javaScript 赋予的默认值声明变量但没有赋值

let varB
 let varA = varB;
 console.log(varA)

您会收到此错误 Uncaught SyntaxError: Identifier 'varA' has already been declared,因为您不能在同一范围内为变量指定相同的名称。

查看此link 以获取更多信息

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-12
    • 2020-05-07
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多