java script 中一个感叹号、两个感叹号、三个感叹号,!、!!、!!!区别

推理假设

“空”=undefined = null= 0 =false
if(e!=null&&e!=undefined&&e!=''&&e!=0) 很好理解,判断一个值是否为非空**(变量有值才通过)**

if(e) 判断变量是否“非空”,“非空”就通过。

if(!e) 判断变量是否“为空”,“为空”就通过。 ( if(e) 取反 )

if(!!e) 等价于 if(!e) 取反

if(!!!e) 等价于 if(!!e) 取反

结论

if(e!=null&&e!=undefined&&e!=''&&e!=0) 等价于 if(e) 等价于 if(!!e)

if(!e) 等价于 if(!!!e)

实验

java script 中一个感叹号、两个感叹号、三个感叹号,!、!!、!!!区别_第1张图片

总结

实用

if(e) 判断变量是否“非空”,“非空”就通过。

if(!e) 判断变量是否“为空”,"为空”就通过。 ( if(e) 取反 )

其他操作……

锻炼手指

实验code

		// empty
        var e = null;
        //undefined
        var u = undefined;
        //blank
        var b = '';
        //number
        var n = 0;
        //if(e!=null&&e!=undefined&&e!=''&&e!=0)
        console.log("------if(e!=null&&e!=undefined&&e!=''&&e!=0)------");
        if(e!=null&&e!=undefined&&e!=''&&e!=0)console.log('L e pass');
        if(u!=null&&e!=undefined&&e!=''&&e!=0)console.log('L u pass');
        if(b!=null&&e!=undefined&&e!=''&&e!=0)console.log('L b pass');
        if(n!=null&&e!=undefined&&e!=''&&e!=0)console.log('L n pass');
        //if(e)
        console.log('------if(e)------');
        if(e)console.log('A e pass');
        if(u)console.log('A u pass');
        if(b)console.log('A b pass');
        if(n)console.log('A n pass');
        //if(!e) !
        console.log('------if(!e)------');
        if(!e)console.log('if(!e) e pass');
        if(!u)console.log('if(!e) u pass');
        if(!b)console.log('if(!e) b pass');
        if(!n)console.log('if(!e) n pass');
        //if(!!e) !!
        console.log('------if(!!e)------');
        if(!!e)console.log('if(!!e) e pass');
        if(!!u)console.log('if(!!e) u pass');
        if(!!b)console.log('if(!!e) b pass');
        if(!!n)console.log('if(!!e) n pass');
        //if(!!!e) !!!
        console.log('------if(!!!e)------');
        if(!!!e)console.log('if(!!!e) e pass');
        if(!!!u)console.log('if(!!!e) u pass');
        if(!!!b)console.log('if(!!!e) b pass');
        if(!!!n)console.log('if(!!!e) n pass');

你可能感兴趣的:(前端)