“条件”(?:)运算符是否像JavaScript一样在JavaScript中工作?
答
是它的工作一样,虽然运算符优先级始终是棘手的,所以我会建议括号,以避免混乱。
切向相关..
您还可以使用在JavaScript ||
类似空合并运算符??
在C#
答
我不知道,如果这个工程:
x > 100 ? y = x : z = x ;
但这个工程:
y = x > 100 ? foo : bar ;
答
这会帮助你(在未来):
https://developer.mozilla.org/en/JavaScript/Reference/Operators/Operator_Precedence
首先对>
比较进行评估,因为它已经存在默认值8. ?:
优先15,低于16的=
。这意味着三元运算符将在任何分配之前运行(即第一个操作数,条件将被评估,然后只选择一个分支)。
也是一个简单的测试
//x = 50;
x = 200;
x > 100 ? y = x : z = x ;
alert((typeof y)+'|'+(typeof z));
会回答你的问题。
答
是它的工作原理相同的,因为它具有以下基本语法
condition ? true-expression : false-expression
它仅计算表达式,并且因此处理副作用,由条件所规定的表达式。
这里有三元运算符给Mozilla文档的链接
答
是,三元运营商合作在Javascript中以同样的方式,因为他们在C,C++,C#,Java的事, Javascript,Perl和PHP。
答
这是一种不同的方法。您可以使用三元来将变量选择为方括号内的字符串。
这window
假设y
和z
是全球性的。否则,你需要给出适当的上下文。
window[x > 100 ? 'y' : 'z'] = x;
我同意你.. – 2010-11-08 17:05:55
经过测试。看起来它确实有效。 'var z = 0; var y = 0; var x = 10; x> 100? y = x:z = x;'你得到'x:10,y:0,z:10'。 – 2010-11-08 17:06:18
你的例子并没有完成和原始代码一样的功能 – StrixVaria 2010-11-08 17:06:19