其次,js还要跨平台!只要是能浏览网页的系统或设备,几乎都能运行js,这样js就要面对各种不同需求的挑战,众口难调,再好的厨师也不可能什么菜都能做得完美,乱是必须的。
最后,一种语言如果给人乱的感觉,那是因为用的人多,用途广泛,是不可或缺的表现!
我也觉得三元运算太长了,可读性不好。但是你例子中不算太复杂。
var b1 = true, b2 = true, v1 = 'v1', v2 = 'v2', v3 = 'v3'console.log(b1 ? b2 ? v1 : v2 : v3)
b1 = false
console.log(b1 ? b2 : v1 ? v2 : v3)
console.log(b1 ? b2 ? v1 : v2 : v3)
像上边这种有嵌套的,一般是从右边开駋找到一对?:算单独的一组,再把这一组作为一个独立的元素看,比如上边最后一行,从右向左发现”b2 ? v1 : v2“可以看作一个运算单元,
console.log(b1 ? (b2 ? v1 : v2) : v3)
b1为false,直接返回了v3.如果b1为true,将返回(b2 ? v1 : v2)的结果。