javascript感叹号1_javascript中的感叹号 "!"

JavaScript中会经常遇到一个操作符:!

这是一个布尔操作符,用于将操作的值强制转换为布尔值并取反。常用场景如下:

//条件判断中使用

vara;var b=null;if(!a){

console.log("a是假的");

}if(!b){

console.log("b是假的");

}//操作布尔值

var c = false;var d = !c;//d === true;

//IIFE(自执行函数、立即执行函数:Immediately-Invoked Function Expression)

!function(){

console.log("IIFE");

}();//转换值类型

var e=100;var f='pelli';var g='';var h=0;

console.log(!!e);//true;

console.log(!!f);//true;

console.log(!!g);//false;

console.log(!!h);//false;

现在来说一说这四种常见的场景中感叹号的作用。"!"

1.条件判断中使用和操作布尔值【取反】

JavaScript中,感叹号本来就是取反的意思。比如a===false;则!a===true;

简单来说,感叹号可以把对的(true)变成错的(false),真的(true)变成假的(false)

!true===false;

!"hello"===false;

!0===true;

!""===true;

2.双感叹号用于转换值类型【强制转换为布尔值】

感叹号在取反之前会先将数据类型转换为布尔类型,所以用感叹号操作后的值,结果一定是布尔值,只有两个,要么true,要么false。

一个感叹号取反,两个感叹号就是取反后再取反,就和我们说的负负得正差不多是一个意思。

由于是两个感叹号写在一起,可能会造成懵懂,这样写就会明白。

var a='abcd';

a=!(!a);//true

!!a===!(!a);

3.自执行函数中使用

!!function(){//function codes here

}();

自执行函数的写法有很多种,如下也都可以:

+function(){//code

}();-function(){//code

}();~function(){//code

}();

(function(){//code

})();

(function(){

//code

}());

其实这里的感叹号也好,加号也好,只是用了运算符优先级的这一特性,因为这几个运算符在JavaScript中优先级最高,会将紧紧相邻的js语句计算出结果,在计算的过程中,就会执行定义的匿名函数,就达到了自执行的效果。

总结:感叹号在js中有两个作用:

1.取反

2.将值转换为布尔值:true或false。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值