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