js中为什么使用两个感叹号

作为前端开发工程师,经常会看到js代码中会出现两个感叹号的用法,比如 !!foo

其实这只是为了让返回结果更加规范、可控。即使变量foo的值是 null,undefined 等,也一样能返回一个布尔值 false,这样,我们进行逻辑判断的时候,会更加方便有效,减少出错的概率。

观察以上代码,可以发现,无论什么情况,只要前面加上 !! 就能保证返回的值,只有两种可能,要么是true,要么是 false。这在程序的判断语句中,能提供极大的便利。