有人可以解释这个(!!)运算符

时间:2018-06-11 10:32:33

标签: javascript typescript

Angular 6已经在这里了,所以在Medium提供的简短教程中 我创建了这行代码。

else if (!!this.day4Name && !this.day5Name && days[date] !== this.day4Name) {
        this.day5Name = days[date];
        this.day5State = data[i].weather[0].main;
        this.day5Temp = Math.round(data[i].main.temp);

      }

我尝试谷歌,但没有合理解释的结果。 有人可以解释它的行为。 谢谢:))

1 个答案:

答案 0 :(得分:4)

!!表示双重否定,您基本上两次调用not operator

如果你想强制从任何类型转换为布尔值

,它会很有用

e.g。

var somethingTruthy = {};
somethingTruthy = !!somethingTruthy //force cast to boolean
console.log(somethingTruthy); //print true

var somethingFalsy = "";
somethingFalsy = !!somethingFalsy //force cast to boolean
console.log(somethingFalsy); //print false