问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-26 08:41

我来回答

7个回答

懂视网 时间:2022-04-06 14:28

js中空字符串的布尔值是false吗?

js中空字符串的布尔值是false。

布尔值是一个逻辑值,只有true和false(真和假)。

js中布尔值为false的六种情况

下面6种值转化为布尔值时为false,其他转化都为true

1、undefined(未定义,找不到值时出现)

2、null(代表空值)

3、false(布尔值的false,字符串"false"布尔值为true)

4、0(数字0,字符串"0"布尔值为true)

5、NaN(无法计算结果时出现,表示"非数值";但是typeof NaN==="number")

6、""(双引号)或''(单引号) (空字符串,中间有空格时也是true)

注意空数组空对象,负值转的布尔值时都为true

推荐教程:《JS教程》

热心网友 时间:2022-04-06 11:36

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

热心网友 时间:2022-04-06 12:54

一、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。

参考资料:

百度百科--比较运算符

热心网友 时间:2022-04-06 14:29

Boolean Variable (布尔型变量) 是有两种逻辑状态的变量,它包含两个值:真(true)和假(false)。
在js中0为false,其它为true。
!是一个布尔操作符,用于将操作的值强制转换为布尔值并取反。

所以!0即先将0转换为Boolean型false再取反为true。
!!0为!0再取反即false。
!-1是将true取反即为false。
!!-1为!-1取反即为true。

热心网友 时间:2022-04-06 16:20

很简单 true 和false 和负数比较 会把 true 隐式转换为1 false隐身转换为0
所以负数用==去比 是false
!-1是false,!!-1是true 这个原理 因为JS规定 非0的数字是true !-1 相当于 !true 肯定是false !!true == true
你把握隐式转换 和 非0的数是true 就可以解决你的疑惑

热心网友 时间:2022-04-06 18:28

js是弱数据类型,所有非0的整数都是true
只有0代表false

热心网友 时间:2022-04-06 20:53

1、如果一个操作数是布尔值,则将其转换为数值。

所以  0 == false  不是把0转成布尔,而是把false转成0;

所以  -1==false  转换成 -1 == 0  //false

所以  -1==true   转换成 -1 == 1 //false

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
恩施市生育保险报销办理报销流程是什么? 弓箭步,是向前向后? 弓箭步的好处 弓箭步好处 请问大弓箭步与小弓箭步的区别是什么? 还有大弓箭步与小弓箭步的左脚... 什么叫高精度齿轮加工机床呢? 自动化技术在制造业中如何实现高精度加工? 高精度裁断机哪家好 2月10号真实故事那晚上播的天降美娇妻女主角麦小萌,真实名字是什么... 重庆麦小萌科技有限公司为什么会扣钱 有没有米饭夹生这种说法 银行账号与银行卡有什么不同 煮米饭不熟有什么不好的 您好,可以问你一个问题吗,刚学js,var num1="" 那么num1=num1*1是什... 银行帐号就是银行卡的卡号吗? 夹生饭是什么意思?是怎么做出来的?好吃吗? 煮饭不熟有什么征兆 求教js的const怎么转换 今晚煮了夹生饭什么预兆 js面试题,3种强制类型转换和2种隐式类型转换是什么 银行开户账户和银行卡号(银联)有区别吗? 搬新家第一顿就煮成了夹生饭,是不是不吉利?辛苦那么多年好不容易买了房子,搬家热灶居然饭没煮熟,难受 银行账户与银行卡有什么区别 盆友的父亲死了,在我家门上记个红绳,还闷两碗夹生米饭,有啥说头马? 夹生饭对身体不好,夹生饭是怎么做的? 中午吃了夹生饭,下午开车倒车就倒霉了,是不是有说法 搬家煮出来夹生饭有什么兆头 年三十这天把米饭煮夹生了有什么说法? 若煮生米饭,则早生祸,晚生财.用科学知识来解答这种迷信现象 夹生饭的夹生饭的习俗 煮饭煮不熟意味着什么?(迷信的说法) 银行卡和银行帐户的关系是什么 javascript输入一个十进制数,将其转换成二进制数。 开户银行账号是不是就是银行卡卡号? js 中“=== !== || !! ”是什么意思? 银行开户帐号是指银行卡帐号吗? js 中“=== !== || !! ”语句是什么意思? js两个数字求和?求高手留下 请问账户是银行卡的卡号吗? 梦到晴天打雷怎么回事? 梦见自已穿新衣天打大雷? 做梦梦到打雷是为什么? 怎么用photoshop抠图啊 我要做美图素材 ps或美图最简单的抠图溶图技巧 处女第一次会流血吗? 从香港购物,可以带多少东西回内地?有限制带回的东西吗 如果是处女第一次是不是会出血 处女的第一次一定会流血吗 去香港过关能带多少东西 处女第一次会不会流血