Javascript:使用变量,或者如果未定义,则使用默认字符串

har*_*max 27 javascript variables function undefined

我有这个代码:

var phrase = function (variable, defaultPhrase) {
    if (typeof variable === "undefined") {
        return defaultPhrase;
    }
    else {
        return variable;
    }
}
Run Code Online (Sandbox Code Playgroud)

它被称为这样:

Ext.Msg.show({title: phrase(js_shutdown,'Shutdown'), //...
Run Code Online (Sandbox Code Playgroud)

我想要做的是在未定义变量时使用默认短语,但是当我将未定义的变量传递给时phrase(),JS会抛出未定义的变量错误.我该如何解决?还有其他想法吗?

pim*_*vdb 59

你不需要一个功能.该||操作通常用于:

Ext.Msg.show({ title: js_shutdown || 'Shutdown', //...
Run Code Online (Sandbox Code Playgroud)

你可以看到||:

someValue || defaultValue
Run Code Online (Sandbox Code Playgroud)

对于字符串,defaultValue使用if someValue === "".

如果根本没有定义变量,则需要内联typeof x === "undefined"检查,因为您无法将变量传递给函数(即a ReferenceError).

  • 错误。如果someValue = 0而不是未定义,则将使用defaultValue。 (2认同)

Wee*_*etu 13

通常使用||就足够了,就像其他人所说的那样.但是,如果要将0,false和null作为可接受的值,那么确实需要检查变量的类型是否未定义.您可以使用三元运算符使其成为单行:

var variable;
var defaultPhrase = "Default";
var phrase = (typeof variable === "undefined" ? defaultPhrase : variable);
console.log(phrase);
// => "Default"
Run Code Online (Sandbox Code Playgroud)