a = 1
1
b = a? a: 2
1
a
1
b
1
c = 'c:' + b? b:2
1
c
1
console中的结果。
为什么 c 赋值时没报错,却把b的值赋给他?
a = 1
1
b = a? a: 2
1
a
1
b
1
c = 'c:' + b? b:2
1
c
1
console中的结果。
为什么 c 赋值时没报错,却把b的值赋给他?
因为'c:' + b
等价于'c:' + 1
,即'c:1'
三目运算对'c:1'
判断true
或false
,此时'c:1'
为字符串类型并且不为空,所以为true
,所以赋值结果就是c = b
,b
为1
,所以c
也为1
10 回答11.6k 阅读
2 回答3.1k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答789 阅读✓ 已解决
那不是赋值操作啊,那是+运算符,一个字符串+数字 = 字符串
但是+ 运算比 ? 运算优先级高。他其实是"c:1"?b:2
一个字符串肯定是真啊,所以返回1