重命名时,Javascript在赋值表达式的左侧无效[重复]

Posted

技术标签:

【中文标题】重命名时,Javascript在赋值表达式的左侧无效[重复]【英文标题】:Javascript Invalid left-hand side in assignment expression when renaming [duplicate] 【发布时间】:2018-09-23 08:25:41 【问题描述】:

我有一些代码在我重命名类名时出现以下错误。

这没有错误:

this.container = document.createElement("ul"),

但是当我将容器类名重命名为:

this.tt-container = document.createElement("ul"),

我收到以下错误:

语法错误:赋值表达式左侧无效

我该如何解决这个问题?

【问题讨论】:

如果- 对变量名有效,那么您将如何解析表达式x-y - 它是减法还是从单个变量中检索值?如果你说“好吧,没有空格,因此它是一个变量”,那么x - y 呢?现在这不是三个由空格分隔的变量吗? 当我重命名类名时” - 你的代码与类名有什么关系? 【参考方案1】:

使用_而不是-,所以this.tt_container,而不是this.tt-container

【讨论】:

【参考方案2】:

来自MDN,

对象属性名称可以是任何有效的 JavaScript 字符串,也可以是可以转换为字符串的任何内容,包括空字符串。但是,任何不是有效 JavaScript 标识符的属性名称(例如,具有空格或连字符,或以数字开头的属性名称)只能使用方括号表示法访问。

在您的情况下,- 不是有效的 javascript 标识符。要使用-,请使用括号表示法

this["tt-container"] = document.createElement("ul"),

【讨论】:

以上是关于重命名时,Javascript在赋值表达式的左侧无效[重复]的主要内容,如果未能解决你的问题,请参考以下文章

尝试初始化嵌套数组时出错“赋值表达式的左侧可能不是可选的属性访问。”

如何以照片的拍摄时间批量重命名文件

为啥在verilog中要定义wire?

赋值表达式中的左侧无效

C++17 排序:赋值左侧的后增量

RTL基本知识:阻塞赋值与非阻塞赋值