javascript中!!运算符
在查看一些插件源码时,在做数据校验时,经常用到!!运算符,如:
乍看有点懵,其实按照js内置 "!" 运算符从右到左按次序剖析,也就理解了。
先看内层运算: !obj ,这是一个非运算:
当obj为假时(null/undefined/false/NaN/""等),非运算后的结果未false;
当obj为真时(非null/undefined/false/NaN/""等),非运算后的结果未true;
即:
!obj ===false ( obj为真时 )
!obj ===true ( obj为假时 )
再进行一次取非操作,结果就很明显了:
!!obj === true ( obj为真时 )
!!obj ===false ( obj为假时 )
所以,"!!"操作符是判断变量是否真正为真(非null/undefined/false/NaN/""等)的很简明的实现方式,省去了大量的&&运算,如果用&&来实现上述求真逻辑,代码表现如下:
if( obj!==null &&obj!==undefined && obj!==NaN && obj!=="" && obj!==false){ //statements }
表现非常的臃肿。
综上“!!”运算符在js中是求真的一个非常优秀的方法,在日常的代码编写中要用进去了~^_^
路漫漫其修远兮,吾将上下而求索。
May stars guide your way⭐⭐⭐