【发布时间】:2013-09-28 21:21:42
【问题描述】:
是否可以在条件表达式中声明变量?
例如: 下面的代码返回一个语法错误(因为我已经在条件表达式中声明了变量 x?)。
var a = document.getElementById("userData");
var d = a.value;
function() {
(d.length>15)?(
alert("your input was too long")):(
var x = parseInt(d).toString(2),
a.value=x
);
}
显然这可以通过简单地在语句之外添加var x; 来解决,但是这里可以声明变量吗?
【问题讨论】:
-
...你为什么要这样做?
-
在这种情况下我会使用 if..else 并保持可读性。
-
没有。那么像
var a = (var b!=undefined) ? (var c=1) : (var d=2);这样的东西是否合法 -
@delnan 老实说,只是好奇。除了将我的代码缩短一两个字符之外,我认为它没有任何好处。
-
@LiamB 您应该以可读性为目标,而不是简短。不必要的短代码通常太聪明,以至于下一个必须维护您的代码的人很容易理解。 (或者当你一个月后回到代码时,甚至是你自己。)
标签: javascript conditional-operator