javascript中 !和!!与Boolean的关系

一,在JavaScript中 !和 !!的关系

在js中出现一个!我们都知道是布尔值取反,那么!!表示什么呢?我们一起来探索一下吧

"!!"将表达式进行强制转化为bool值的运算,运算结果为true或者false。

二,在JavaScript中Boolean的划分 和 !与 !!的关系

布尔值分为 true 和 false ;true = 1   false = 0 ,除了一下6种情况外,其它全为true

(1)布尔值为false的有一下几种情况:

1、undefined(未定义,找不到值时出现)

2、null(代表空值)

3、false(布尔值的false,字符串"false"布尔值为true)

4、0(数字0,字符串"0"布尔值为true)

5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")

6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true

通过图上对比我们发现,!是自身布尔值取反,!!则是布尔值本身

所以我们在js通常会这么用:

!! num ? num : a 这个语句表示:如果 num 不是 undefined 和 null ,那么取num 的值,否则取 a 的值。这也是我们在写代码的时候进行一些非空判断等常用的手段。

你可能感兴趣的:(javascript中 !和!!与Boolean的关系)