是否可以在JavaScript的一行中将空字符串(“空”)转换为未定义?

是否可以在JavaScript的一行中将空字符串(“空”)转换为未定义?,javascript,undefined,string,Javascript,Undefined,String,只是想知道。我有一个方法(URItemplate),如果没有定义变量,我需要返回undefined。目前我正在这样做: var x = UriTemplate.parse(value || "").expand({"some":"properties"} || {}); 如果值和我的扩展对象{}作为空字符串和空对象传递,则x等于“” 我想知道是否有什么我可以做的空字符串转换为未定义的,所以我可以稍后调用 $.ajax({"url": x || default_url})... 当然有if

只是想知道。我有一个方法(URItemplate),如果没有定义变量,我需要返回undefined。目前我正在这样做:

 var x = UriTemplate.parse(value || "").expand({"some":"properties"} || {});
如果
和我的扩展对象{}作为空字符串和空对象传递,则x等于
“”

我想知道是否有什么我可以做的空字符串转换为未定义的,所以我可以稍后调用

 $.ajax({"url": x || default_url})...
当然有
if-else
?:
而我的
|
也是一个if-else,但我想知道是否有其他方法可以作为一行代码来实现这一点


谢谢

您可以使用
|

x = x || undefined;

如果“x”有任何falsy值(包括空字符串),则其结果将为未定义

// "def" means "default (to undefined)"
function def(v) { if (v) return v; }
x = def(x);
y = def(y);

嗯,你至少需要两行(有点作弊)=D

啊,很好。。。让我试试。非常好!非常感谢你!请注意,如果
x
是一个空字符串,它将在当前代码中回退到
default\u url
x
需要是falsy,不一定是
未定义的
,空字符串(连同
null
未定义的
0
)是falsy。这也是一个很好的观点。美好的