!!运算符在javascript里是什么用法

What does a !! in JavaScript mean?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicates:
myVar = !!someOtherVar
What does the !! operator (double exclamation point) mean in JavaScript?

遇到这行代码

1
strict = !!argStrict

…在这里想知道!!对线路有什么影响?刚接触JS!


它将您的值转换为布尔类型:

1
2
3
4
var x = '1';
var y = !!x;

// (typeof y === 'boolean')

还要注意以下几点:

1
2
3
4
5
6
7
var x = 0;
var y = '0';       // non empty string is truthy
var z = '';

console.log(!!x);  // false
console.log(!!y);  // true
console.log(!!z);  // false

它通过两次求反将值转换为布尔类型的值。当您想确保一个值是一个布尔值,而不是另一种类型的值时,可以使用它。

在JS中,处理布尔值的所有内容都接受其他类型的值,有些甚至可以返回非布尔值(例如,||&&)。但是,!总是返回一个布尔值,以便它可以用于将事物转换为布尔值。


它是一对逻辑非运算符。

它将虚值(如0false转换为true,然后将false和真实值(如true"hello"转换为falsetrue

最终的结果是得到一个布尔值版本的值。


它转换为布尔值


它是一个"不"参数

通常用于将(快捷方式)字符串值转换为bool

这样地。。

如果(!)!'true')警报('its true')