javascript 变量赋值中用 或 的问题
vari=0;varlogin=i==1||i++||3;console.log(login);结果是3前面我都能理解i==1不成立跳到下面一个然后i++但是i++是成立...
var i=0;
var login = i ==1 || i++ ||3;
console.log(login); 结果是3
前面我都能理解 i==1不成立 跳到下面一个 然后i++
但是i++是成立的 应该返回0啊 为什么是3 展开
var login = i ==1 || i++ ||3;
console.log(login); 结果是3
前面我都能理解 i==1不成立 跳到下面一个 然后i++
但是i++是成立的 应该返回0啊 为什么是3 展开
4个回答
展开全部
这里有一篇取值的规则
http://www.cnblogs.com/catprayer/archive/2010/10/16/1853104.html
结合你的情况:
i == 1 false
i++的时候i是0,0等同于false,注意这里是后置的++,不是前置的
前面的都是false, 所以最后结果取3
http://www.cnblogs.com/catprayer/archive/2010/10/16/1853104.html
结合你的情况:
i == 1 false
i++的时候i是0,0等同于false,注意这里是后置的++,不是前置的
前面的都是false, 所以最后结果取3
更多追问追答
追问
但是我如果写的是这样
var i=0;
var login = i ==1 || i++
console.log(login); 结果是0
照你的说法 应该等同false呀
追答
var i=0;
var login = i ==1 || i++ ||3; // i == 1 false,
i++在执行++之前取得i的值为0,也就是false,所以直接取3,最后console.log结果就是3
console.log(login);
var i=0;
var login = i ==1 || i++ //i == 1
false,所以直接取后面的i++,但是因为是后置的++,所以取的值是0,所以最后console.log结果是0
console.log(login);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-06-26
展开全部
0就是false,所以打印第三个:3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
i++ 你都说是0了,0表示false,则继续取后面的3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0==false--->true
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询