将值与if一起存储在变量中

时间:2013-02-18 19:01:18

标签: javascript mediawiki

我正在尝试根据您可能位于的命名空间创建一个更改的谈话页面链接。例如,如果您在主空间中,您将被定向到Talk:如果属于Category_talk:。到目前为止我有这个:

var namespace = if (wgNamespaceNumber == '0') {
    return ('Talk');
} else {
    return (mw.config.get( 'wgCanonicalNamespace' ) + '_talk');
}

但它只是返回语法错误,如果是意外的令牌。我猜你不能用这种方式吗?

3 个答案:

答案 0 :(得分:2)

return用于将值或对象传递出函数,而不是像if/else这样的块。

var namespace;

if (wgNamespaceNumber == '0') {
    namespace = 'Talk';
} else {
    namespace = mw.config.get( 'wgCanonicalNamespace' ) + '_talk';
}

答案 1 :(得分:0)

你猜对了。你无法分配这样的IF。

将您的代码更改为

var namespace = null;

if (wgNamespaceNumber == '0') {
    namespace = 'Talk';
} else {
    namespace =  (mw.config.get( 'wgCanonicalNamespace' ) + '_talk');
}

它会起作用。

答案 2 :(得分:0)

您无需退货。您可以根据条件设置变量的值。但是,该函数需要返回一个值。

var namespace = (wgNamespaceNumber == '0')
    ? 'Talk'
    : mw.config.get( 'wgCanonicalNamespace' );

上述条件称为三元(MDN explains it better