Javascript 如何修复';未定义变量';在节点终端中,为什么会发生这种情况?

Javascript 如何修复';未定义变量';在节点终端中,为什么会发生这种情况?,javascript,node.js,Javascript,Node.js,我定义了一个变量,并给它分配了一个有语法错误的函数。它抛出错误。现在,我无法将该变量用于任何事情,它总是说“抛出: ReferenceError:未定义变量' > let bg = 'asasas-123d' undefined > let fd = bg.substring(indexOf('-')+1) Thrown: ReferenceError: indexOf is not defined > let fd = bg.substring(bg.indexOf('-')

我定义了一个变量,并给它分配了一个有语法错误的函数。它抛出错误。现在,我无法将该变量用于任何事情,它总是说“抛出: ReferenceError:未定义变量'

> let bg = 'asasas-123d'
undefined
> let fd = bg.substring(indexOf('-')+1)
Thrown:
ReferenceError: indexOf is not defined
> let fd = bg.substring(bg.indexOf('-')+1)
Thrown:
SyntaxError: Identifier 'fd' has already been declared
>  fd = bg.substring(bg.indexOf('-')+1)
Thrown:
ReferenceError: fd is not defined
> let  fd = bg.substring(bg.indexOf('-')+1)
Thrown:
SyntaxError: Identifier 'fd' has already been declared
> fd = bg.substring(bg.indexOf('-')+1)
Thrown:
ReferenceError: fd is not defined
> fd
Thrown:
ReferenceError: fd is not defined
> console.log(fd);
Thrown:
ReferenceError: fd is not defined

只需重新启动终端并运行以下操作:

> let bg = 'asasas-123d'
> let fd = bg.substring(bg.indexOf("-") + 1))

只需重新启动终端并运行以下操作:

> let bg = 'asasas-123d'
> let fd = bg.substring(bg.indexOf("-") + 1))

请注意,
indexOf
是iterable对象的属性,而不是变量。控制台执行上下文很奇怪。当有赋值时,首先解析右侧;如果右侧抛出错误,它永远不会到达左侧,并且用let声明的变量永远不会正确初始化;它将永远留在非军事区/暂时死区。您可能打算使用一些类似于<代码> BG.子字符串(BG.ReXOXOF),因为<代码>索引XOR/<代码>不是一个独立的函数(您也可以考虑使用正则表达式)HyDooGoo.欢迎到板上。看起来您可能有一个类型错误,这可能是导致整个错误的原因。我相信你的意思是bg.indexOfyes,我只是说。我打了个错字。我实际上很困惑为什么它不允许我再次访问那个变量?如果我使用'let fd=something',它表示它已经声明了。如果我使用'fd=something',它表示它没有定义。请注意,
indexOf
是iterable对象的属性,而不是变量。控制台执行上下文很奇怪。当有赋值时,首先解析右侧;如果右侧抛出错误,它永远不会到达左侧,并且用let声明的变量永远不会正确初始化;它将永远停留在非军事区/暂时死区。您可能打算使用类似于<代码> bg.子字符串(bg.DexOx),因为<代码>索引X/<代码>不是一个独立的函数(也可以考虑使用正则表达式)Hiang-Doad!欢迎来到板。看起来您可能有一个键错,这可能是导致整个错误的原因。让FD=BG.Sub(索引(“-+”)+ 1)我相信你的意思是bg.indexOfyes,我的意思只是。我输入了一个错误。我实际上很困惑为什么它不允许我再次访问那个变量?如果我使用'let fd=something',它表示它已经声明了。如果我使用'fd=something',它表示它没有定义。我的问题是一个变量如何声明但没有定义。我知道at是一个错误,我在后面的步骤中更正了,但它不允许我这样做。我的问题是如何声明变量但不定义。我知道这是一个错误,我在后面的步骤中更正了,但它不允许我这样做。