首页 > 试题广场 >

执行以下程序,输出结果为()

[单选题]
执行以下程序,输出结果为()
var x = 10;
var y = 20;
var z = x < y ? x++:++y;
console.log('x='+x+';y='+y+';z='+z);
  • x=11;y=21;z=11
  • x=11;y=20;z=10
  • x=11;y=21;z=10
  • x=11;y=20;z=11
😱针细
发表于 2020-01-24 23:00:54 回复(0)
后置自增,先参与运算,后自增。 前置自增,先自增,后参与计算。
发表于 2019-08-18 12:13:26 回复(5)
  • 赋值=运算符的优先级最低。因此先看右边的表达式。
  • 右边的表达式是一个三元运算符。
    判断x<y(10<20)返回true,因此执行:前的表达式。
  • 也就是整个表达式等价于:z = x++。
  • z=x自增前的值为10。
  • x++,x最终等于11。
  • y的值没有发生变化(因为没有执行:后面的表达式),因此y的值仍为20。
发表于 2019-08-15 21:51:34 回复(3)
x++是属于后置型运算,优先级低,z=x++是先算z=x,最后x再执行自增。
发表于 2020-08-15 19:43:52 回复(2)
++x 先加再赋值   x++ 先赋值在++
发表于 2020-04-20 15:16:58 回复(0)
setTimeout应该属于window对象,很多同学可能在默认使用Ts的过程中直接调用setTimeout方法出现警告或者报错,前面加一个window就好了
发表于 2021-09-22 21:37:16 回复(0)
var x=10;
var y=20;
var z=x<y?x++:++y;

// 等效于
y = y+1;
// 在三目运算前 先自加,在运算
// 本条件是三目运算执行了前面,当执行后面时,也要注意结果
var z = x<y?x:y
x = x+1;//先运算,再加一个
console.log('x='+x+';y='+y+';z='+z);

发表于 2021-08-06 21:44:31 回复(0)
++y被短路了,不执行
发表于 2021-05-31 20:14:52 回复(0)
逻辑短路了,没注意...
发表于 2022-09-28 17:29:38 回复(0)
后缀递增/递减,在语句被求值后才发生。
发表于 2022-06-29 19:50:24 回复(0)
三元运算符,判断为true后只执行了x++,没执行++y
发表于 2022-04-30 00:30:04 回复(0)
x++是后置自增,也就是先返回x值,然后再自增加1 那x为什么不是10呢,不是先返回x值吗?
发表于 2022-04-26 18:25:22 回复(0)
后置运算 先运算再自增这里x先赋值给z后再加一
发表于 2021-09-05 21:23:16 回复(0)
解析:++在前,先++,再赋值;++在后,先赋值,后++
var z=x<y?x++:++y;
可将该语句进行拆分:
if (x < y) {
    z = x;
x++;
}else {
++y;
z = y;
}
发表于 2021-09-01 22:53:29 回复(0)
前置自增:先自增,后运算
后置自增:先运算,后自增
z=x++想当于z=x,x++即
z=10
x=x+1=11
y=20
发表于 2021-04-23 19:24:58 回复(0)
冒号后面的语句不执行
发表于 2021-03-21 17:01:20 回复(0)
<p>因为是三元运算符,所以有一个++不会被执行,需要考虑细节</p>
发表于 2020-12-11 16:45:03 回复(0)
因為z=x,之後x+1
发表于 2020-11-16 23:44:12 回复(0)
z = x<y?x++:++y; 
=> if(x<y){z = x++ ;} else { z = ++y}
顺序:
1、x < y , true 
    =>
    z = x++ ; z => 10
2、x++; x=> 11
3、z = ++y 并没有执行他所在的语句块 y = 20 

发表于 2020-11-11 15:18:21 回复(0)
这道题到b还是选c啊
发表于 2020-10-24 22:21:01 回复(0)