首页 > javascript中在字符拼接中使用三木算法需要注意的问题

javascript中在字符拼接中使用三木算法需要注意的问题

今天遇到一个比较奇怪的问题,问题如下:

var A = 'abc123', B = true, C;

console.log(B);  //true
console.log(typeof (B ? "ABC" : "CBA")); //string

C = A + B ? "ABC" : "CBA";
console.log(C);  //输出 ABC

//js会这样处理的
C = (A + B) ? "ABC" : "CBA";
console.log(C); //输出ABC

//处理方法
C = A + (B ? "ABC" : "CBA");
console.log(C);  //输出  abc123ABC

var D = B ? "ABC" : "CBA";
C = A + D;
console.log(C);  //输出 abc123ABC

不清楚问题在哪里


https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Expressions_and_Operators#Operator_precedence

运算符优先级

() new > * / % > + - > ?: > = += -= *= /= %= <<= >>= >>>= &= ^= |= > ,
call / create instance > multiply/divide > addition/subtraction > conditional > assignment > comma


C = A + B ? "ABC" : "CBA";
console.log(C); //输出 ABC

因为 C = A + B 不为空,所以为true

【热门文章】
【热门文章】