在js中,为什么!0是true,!!0是false,!1是false,!!1是true,!-1是false,!!-1是true

看过别人以下解析:1.==会把比较的二者进行类型转换:如:0==false;//true,会把0转成bool值进行比较1==true;//true,同样把1转成bool值... 看过别人以下解析: 1. ==会把比较的二者进行类型转换: 如:0 == false; // true, 会把0转成bool值进行比较 1 == true; // true, 同样把1转成bool值再和true进行比较 2. ===是不会把比较的二者进行类型转换,是string就是string,是number就是number 如: 0 === false; // false, 因为0是number,false是boolean,两者就肯定不相等 1 === true; // false 但如果 -1==false //false -1==true //false 负数用==去判断都是false,什么原理? 展开
 我来答
禄爽系华
2019-12-13 · TA获得超过3551个赞
知道大有可为答主
回答量:3043
采纳率:27%
帮助的人:169万
展开全部
一、js中的数字0就是false,非0为true,!表示取反。所以:
!0--false取反--true;
!!0--false双重取反--false;
!1--true取反--false;
!!1--双重取反--true;
!-1--true取反--false;
!!-1--true双重取反--true。
二、==和===:
==:先检查两个操作数数据类型,如果相同,
则进行===比较,
如果不同,
则愿意为你进行一次类型转换,
转换成相同类型后再进行比较;===:
如果类型不同,直接就是false。
具体比较过程:
1、双等号==:
(1)如果两个值类型相同,再进行三个等号(===)的比较。
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
如果一个是null,一个是undefined,那么相等。
如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较。
2、
三等号===:
(1)如果类型不同,就一定不相等。
(2)如果两个都是数值,并且是同一个值,那么相等;如果其中至少一个是NaN,那么不相等。(判断一个值是否是NaN,只能使用isNaN(
)
来判断)。
(3)如果两个都是字符串,每个位置的字符都一样,那么相等,否则不相等。
如果两个值都是true,或是false,那么相等。
如果两个值都引用同一个对象或是函数,那么相等,否则不相等。
如果两个值都是null,或是undefined,那么相等。
扩展资料:
在js做比较的时候,有这样的三条规则:
1、如果比较的两者中有bool,会把
bool
先转换为对应的
number,即
0

1。
2、如果比较的双方中有一方为number一方为string,会把string转换为数字。
3、把string直接转换为bool的时候,空字符串‘'转换为
false,除此外的一字符串转换为
true。
参考资料:
百度百科--比较运算符
达智良优悠
2019-08-28 · TA获得超过3684个赞
知道大有可为答主
回答量:3029
采纳率:34%
帮助的人:202万
展开全部
true
和false
和负数比较,
会把
true
隐式转换为1
,false隐身转换为0。
因为JS规定
:非0的数字是true
!,-1
相当于
!
true
肯定是false

所以0是true,!!0是false,!1是false,!!1是true,!-1是false,!!-1是true。
Javascript脚本语言同其他语言一样,有它自身的基本数据类型,表达式和算术运算符及程序的基本程序框架。Javascript提供了四种基本的数据类型和两种特殊数据类型用来处理数据和文字。
扩展资料:
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的
解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言。最早是HTML(标
准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
参考资料:百度百科-js
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帅樱艾沛柔
2020-07-09 · TA获得超过3834个赞
知道大有可为答主
回答量:3073
采纳率:32%
帮助的人:462万
展开全部
Boolean
Variable
(布尔型变量)
是有两种逻辑状态的变量,它包含两个值:真(true)和假(false)。
在js中0为false,其它为true。
!是一个布尔操作符,用于将操作的值强制转换为布尔值并取反。
所以!0即先将0转换为Boolean型false再取反为true。
!!0为!0再取反即false。
!-1是将true取反即为false。
!!-1为!-1取反即为true。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伏霞经翊君
2020-06-30 · TA获得超过3886个赞
知道大有可为答主
回答量:3246
采纳率:30%
帮助的人:203万
展开全部
很简单
true
和false
和负数比较
会把
true
隐式转换为1
false隐身转换为0
所以负数用==去比
是false
!-1是false,!!-1是true
这个原理
因为JS规定
非0的数字是true
!-1
相当于
!true
肯定是false
!!true
==
true
你把握隐式转换

非0的数是true
就可以解决你的疑惑
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式