js中三目运算执行的循序

<script language="javascript">
var i=1;
var g=2;
var type="xml";
var data=type == "xml" || data ? i:j ;
alert(data);
</script>

这个最后弹出来的是1,而根据或运算的规则,type == "xml"判断为true后,右边的就不再执行了,这儿为什么还是执行了三目运算,应该弹出的是 true啊???

    type == "xml" || data。

    可以理解为:如果 type等于xml 或者data为真 那么执行问号后的。

    而声明了变量type的值是xml,那么,type == "xml" || data 中有一个条件是成立的。

    由于使用了 || (或者的意思),那么有一条成立,就会执行问号后面的。


温馨提示:内容为网友见解,仅供参考
第1个回答  2012-09-13
type == "xml" || data
可以理解为:如果 type等于xml 或者data为真 那么执行问号后的
而你声明了变量type的值是xml,那么,type == "xml" || data 中有一个条件是成立的
由于你使用了 || (或者的意思),那么有一条成立,就会执行?号后面的
你问号后的是变量i,而i的值是1,那不弹出1,弹出什么呢?本回答被提问者采纳

js中三目运算执行的循序
type == "xml" || data。可以理解为:如果 type等于xml 或者data为真 那么执行问号后的。而声明了变量type的值是xml,那么,type == "xml" || data 中有一个条件是成立的。由于使用了 || (或者的意思),那么有一条成立,就会执行问号后面的。

JS中三目运算符和if else的区别分析与示例
先说if else var n=1; if(n>1){ n=0;}else{ n++;}console.log(n);输出结果:2三目运算如下:var n=1;n = n>1?0 : n++;console.log(n);输出结果为:1插入一段其他内容:++n和n++的区别:简单地说,都是 n 自加1。区别是,n++是执行完后面的语句才加1;而++n 就先做...

JS中三目运算符和if else的区别分析与示例
1 if() else()和 三目运算符两个写法不一样,但是表达的意思是一样的,实际开发中比较简单的会用三目运算符,大多数的逻辑判断还是用if()else()因为清晰明了,有利于开发人员读懂程序。2 语法格式的不同 :三目运算符语法格式:表达式A?表达式1:表达式2 意思是说表达式A(就是?前面...

一\/二\/三目运算符 算数 关系 逻辑
目: 元素 ++(前增量\/后增量运算符) --(前减量\/后减量运算符) + - 一元加法本质上对数字无任何影响 ··· var sNum = "20"; alert(typeof sNum); \/\/输出 "string" var iNum = +sNum; alert(typeof iNum); \/\/输出 "number" ··· 尽管一...

JS 中的 ? 操作符(? \/ ?. \/ ?? \/ ??=)
JS中的操作符?、?.、??和??=提供了强大的灵活性和简洁性,让开发者在处理对象属性和值时更为便捷。首先,我们有三目运算符(?),这是基础中的基础,对于不熟悉这部分的读者,建议加强学习。它用于简单的条件判断,如果满足条件,执行某个操作,否则执行另一操作。然而,当涉及到对象链时,可选链...

Js 中的三目表达语法请教
先试了一下if else,如下:if(n >= count-1){n =0;}else{n ++;}三目运算符的写法,如下:n = n >= (count-1) ? n=0 : n++结果完全不同 随后研究了一下这两者的区别,总结为一句话:三目运算有返回值,if else没有返回值 例如 var n=1; if(n>1){ n=0;}else{ n++...

js中 a > b? 'a':'b'是什么意思
这个叫三目运算符 a > b? 'a':'b'上述代码解析后就是 if(a>b){ a}else{ b}如果a > b 成立,则是a,不成立则是b

js中var x = (a || b,c);怎么解释这个表达式?
a||b 短路运算符,a为false执行b,a为true,执行a类似的还有 a & b ,a为true执行b,否则为a三目运算符:a ? b : c; a为true 执行b 赋值执行cvar a = (3,4);会逐个赋值 先a=3, 然后再a=4覆盖比如 function test(num){ console.log('赋值为:'+num); return num...

优化js中的三目运算符代码?
当然有了,你需要一个方法,然后返回值,不就简化了这个代码吗 getName(value){ return value?value.hostName: ''},

js中的?是什么意思
?:三目运算符 比如判断语句:i=1 if(true){ i+=+1 }else{ i+=+2 } 用三目运算符:i+=true?1:2

相似回答