码迷,mamicode.com
首页 > 其他好文 > 详细

逻辑非!

时间:2016-01-24 07:04:22      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

逻辑非运算符可以用于任何值。无论这个值是什么数据类型,这个运算符都会返回一个boolean。

它的流程是:先将这个值转换成boolean,然后取反,规则如下:

1.操作数是一个对象,返回false;

var box =!{};
alert(box);//false

2.操作数是一个空字符串,返回true;

var box =!‘‘;
alert(box);//true

3.操作数是一个非空字符串,返回false

var box =!‘lx‘;
alert(box);//false

4.操作数是数值0,返回true;

var box =!0;
alert(box);//true

5.操作数是任意非0数值(包括infinty),false;

var box =!1;
alert(box);//false

6.操作数是null,返回true;

var box =!null;
alert(box);//true

7.操作数是NaN,返回true;

var box =!NaN;
alert(box);//false

8.操作数是undefined,返回true;

var box =!undefined;
alert(box);//false

说明:而使用两次逻辑非运算符就是将值转成成布尔值取反再取反,相当于对值进行Boolean()转型函数处理。

var box = !!!o;//可以这么写,但无意义

总结:看似有八条,太多了数过来。我们可以从结果来看,实际上就两条:

1.结果为true的:null、undefined、NaN、空字符串、0……

2.结果为false:对象(Object)、非空字符串、非0的数值……

逻辑非!

标签:

原文地址:http://www.cnblogs.com/liangcheng11/p/5154505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!