if...else与三目运算这两者的区别

原创 zjlxiaolu 随笔 学习成果 196阅读 2017-12-08 10:52:56 举报

今天在练习JavaScript的时候遇到了if...else 和 三目运算的问题:
例子里给了一个注意:if...else与三目运算这两者的区别,总结为一句话:三目运算有返回值,if else没有返回值。
让我一直搞不懂的是:同样打印出来值了,为什么要说返回值得问题?又是群里问,又是朋友找,最后,看了几个文章才算搞明白,先上例子:
例子1:
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

例子2:
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);

输出结果为:2

自我总结:
第一个例子的结果是2,1;因为if...else是要计算完整个代码得出n,而三元运算只需要得到n就行,所以两个计算结果不同。
第二个例子的记过是2,2;这个例子的三目运算是得到了计算后的 n 的值。

总算明白前边的那个注意返回值的意思了:他说的返回值是指 n 本身的这个值。而不是计算后的 n 的值。
总的来说,我认为是n++和++n的区别。

评论 ( 0 )
最新评论
暂无评论

赶紧努力消灭 0 回复