首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JS声明并赋值多变量inLine es6?

问JS声明并赋值多变量inLine es6?
EN

Stack Overflow用户
提问于 2018-04-07 14:27:34
回答 1查看 3.4K关注 0票数 1

是否可以用es6语法在同一行中声明和赋值多个变量?这里仅举一个例子,假设我需要给mX,mY,mXDZ,mYDZ赋值"50“。我怎么能做到这一点?

代码语言:javascript
复制
let [mX,mY,mXDZ,mYDZ] = 50;
let mX,mY,mXDZ,mYDZ = 50; // !just why not! 

我主要是寻找可读性。

EN

回答 1

Stack Overflow用户

发布于 2018-04-07 14:31:50

您可以声明所有变量,然后在单独的语句中初始化它们:

代码语言:javascript
复制
let mX,mY,mXDZ,mYDZ;
mX = mY = mXDZ = mYDZ = 50;

在变量声明语句(let、var或const)中,语法是这样的,每个变量都可以有一个初始化表达式。没有从一个表达式中进行多个初始化的规定。

通过破坏,您可以这样做:

代码语言:javascript
复制
let [mX, mY, mXDZ, mYDZ] = [50, 50, 50, 50];

但这在我看来并不是“更好”,至少在可读性方面是这样。似乎很容易出错。

很重要的一点是

代码语言:javascript
复制
let mX = mY = mXDZ = mYDZ = 50;

绝对不是正确的。这句话被解析为

代码语言:javascript
复制
let mX = (mY = mXDZ = mYDZ = 50);

这将创建一个局部变量("mX")和三个隐式全局变量。在“严格”模式下,这将是一个错误;在非严格模式下,它也是一个错误,但很难调试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49708393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档