为了账号安全,请及时绑定邮箱和手机立即绑定

菜鸟提问:求a,b的值

题一:

以下代码执行后a,b的值分别是

var a = 0;

var b = true||a++;

A.1,true

B.0,true

C.1,1

D.1,0

正确答案: B


题二:

以下代码执行后a,b的值分别是

var a = 0;

var b = 0||++a;

A.1,0

B.1,1

C.0,0

D.0,1

正确答案:B

我就搞不懂题一中a=0,题二中为毛a就等于1了??有变化的不是只有b吗?

正在回答

3 回答

一、var b = true||a++;  由于这是个逻辑或语句,当前面是true的时候,就直接输出了b=true,后面的语句不会执行,

也就是说a++这个语句没有执行,所以a=0;b=true

二、var b = 0||++a; 由于前面是0(如果不是0,就会直接输出,后面的语句不会执行),就会继续执行后面的语句;++a就相当于a=a+1之后,继续进行运算,所以b=1,a=1.

其实直接在编码工具里运行一次更加明白。

2 回复 有任何疑惑可以回复我~
#1

隔壁诸葛村夫

补充下----: var b = 0||++a; 由于前面是0(相当于Boolean的false,会执行后面的语句,直接输出后面表达式的值),如果前面是非0数字或字符串,(相当于Boolean的true,不会执行后面的语句)直接输出 '||' 前面的内容。比如,var b="中国"||++a; 就输出"中国"
2016-09-17 回复 有任何疑惑可以回复我~
#2

慕粉1826222000

比如题一: 怎么去判断前面是true还是false?是根据给出的选项去推是吗? 如果有个选项是0,1 是不是也是对的???
2017-02-12 回复 有任何疑惑可以回复我~

明白了 ,多谢!

0 回复 有任何疑惑可以回复我~

考点是++a与a++的区别。

按理说在两句执行完后,a的值应该都是1啊。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

菜鸟提问:求a,b的值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信