Javascript:变量 = 变量 2 = 变量 3

Javascript: variable = variable2 = variable3

本文关键字:变量 Javascript      更新时间:2023-09-26

我不知道如何描述这个,但这在Javascript中没有出错...但这并不意味着这是一个好主意,并且除了它(或不是)之外的所有Javascript版本。

思潮?

var r = 'r';
var t = 't';
var s = 's';
s = r = t;
// s = 't'
// r = 't'
// t = 't'

它似乎不是标准的,开发人员可能更难遵循,但这真的有任何用例吗?

这是有效的,因为 r=t 的赋值返回赋值。所以是的,您可以根据返回值无限分配值。

作业链接在一起是一种相当标准的做法。它甚至有一个叫做"链分配"的名字。我不知道你从哪里得到"这是糟糕的编码"的想法,但这绝对是一件正常的事情。这有效,因为赋值返回分配的值。

这通常用于初始化变量:

var a, b, c;
a = b = c = 5;  //one use case
//same as
a = (b = (c = 5)));

这似乎不是标准的,开发人员可能更难遵循。

如果开发人员无法理解这个表达方式,我不知道该说什么。

我一直在我的模块中使用它来创建函数的本地快捷方式(用于模块):

var doSomething = module.exports.doSomething = ()=>{};

JavaScript返回值的方式很好。在像python这样的语言中,你必须经常做这种事情:

def do_something(ctx):
    ctx.update({
        'entry': entry,
        'section': 'select_category'
    })
    do_something_else(ctx)

而不是

def do_something(ctx):
    do_something_else(ctx.update({
        'entry': entry,
        'section': 'select_category'
    })

因为更新方法不返回任何内容。