3 个回答

虽然有点长,但还是能看出来就是个逻辑运算,等价于:

this.capsTooltip = false;

// 满足下面三个条件,则为真
if(key){
    if(key.length === 1){
        if(key >= 'A' && key <= 'Z'){
            this.capsTooltip = true;
        }
    }
}
  1. 如果 key 转为布尔值为 false,那 capsTooltip 的值就是 key;
  2. 否则即 key == true。这时如果 key.length === 1 为 false,那么 capsTooltip 的值就为 false;
  3. 否则即 key.length === 1 为 true。这时 capsTooltip 的值就是 key >= 'A' && key <= 'Z' 的结果了,就要么 true 要么 false 了。

这段代码的含义楼上已经说了, 虽然一眼能看懂, 但是这种写法还是非常不建议的.
建议改为

  const singleKey = key && key.length === 1;
  const isAlphabet = key >= 'A' && key <= 'Z' 
  this.capsTooltip =  singleKey && singleKey;
推荐问题