日期:2014-05-16  浏览次数:20367 次

这样通过三元运算符怎么得不到正确结果?
本帖最后由 yuji821 于 2013-09-21 10:50:49 编辑
<script type="text/javascript">
        function test() {
            var s = "a";
            var uu = "b" + s == "a" ? "c" : "d" + "e";
            alert(uu);
        }
    </script>

为什么不是 bce 呢
弹出的结果是 de,为什么呢

------解决方案--------------------
运算符优先级
------解决方案--------------------
怎么也不可能得出bce 啊? 
弹出的结果是 de ,是对的啊。
------解决方案--------------------
条件是flase肯定是de,
        function test() {
            var s = "a";
            var b="b"; 
            var uu = s == "a" ? "c" : "d" + "e";
            alert(b+uu);
        }
分开写不就行了吗?
------解决方案--------------------
var uu = "b" + (s == "a" ? "c" : "d") + "e";
------解决方案--------------------
楼主的写法,de是对的,不知道楼主是否是需要4楼的解答呢 加个括号,改变优先级