首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Javascript中,当使用if语句用三个等号比较零和非false时,为什么false不等于false?

在Javascript中,当使用if语句用三个等号比较零和非false时,false不等于false的原因是因为在Javascript中,false是一个布尔值,而0是一个数字。虽然在if语句中,0和false都被视为假,但它们的数据类型不同。

在Javascript中,使用三个等号(===)进行比较时,不仅会比较值,还会比较数据类型。当比较0和false时,0是一个数字类型,而false是一个布尔类型。因此,尽管它们的值都被视为假,但它们的数据类型不同,所以返回的结果是不相等。

如果想要在Javascript中比较0和false的值而不考虑数据类型,可以使用两个等号(==)进行比较。使用两个等号进行比较时,Javascript会进行类型转换,将false转换为数字0,然后再进行比较。因此,使用两个等号比较0和false时,会返回相等的结果。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 云函数(Serverless):https://cloud.tencent.com/product/scf
  • 云开发(CloudBase):https://cloud.tencent.com/product/tcb
  • 云数据库(TencentDB):https://cloud.tencent.com/product/cdb
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 人工智能(AI):https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

JavaScript 的4种相等算法

ECMAScript 是 JavaScript 的语言规范,ECMAScript 规范[1]存在四种相等算法,如下图所示: 上图中四种算法对应的中文名字如下,大部分前端应该熟悉严格相等严格相等...• 同值 • 同值 • 严格相等 • 严格相等 严格相等 严格相等使用两个等号,也就是我们熟悉的双等,严格相等表示语义相等,不要求类型一样,严格相等比较前会先将比较参数类型转换为一致,再进行比较...•  Boolean 比较,另一个值会转换为 Number 如果值为对象,会使用内部的 ToPrimitive 转换,可以通过自定义 Symbol.toPrimitive 改变返回值,需要注意的是相等的判断...严格相等 严格相等是另一种比较算法,其严格相等的区别是不会进行类型转换,类型不一致直接返回 false,严格相等对应===操作符,因为使用三个等号,也被称作三等或者全等,严格相等示例如下: 1 =...,规范叫做 SameValueZero,同值严格相等功能一样,除了处理 NaN 的方式,同值认为 NaN NaN 相等,这在判断 NaN 是否集合的语义下是非常合理的。

40820

JavaWeb02-CSS,JS(Java真正的全栈开发)

,然后比较大小 字符串和数字比较:字符串无法转成数字,字符串将转成NaN,最终结果为false 等性运算符 ECMAScript 等号由双等号(==)表示,且仅两个运算数相等,它返回 true...等号由感叹号加等号(!=)表示,且仅两个运算数不相等,它返回 true。为确定两个运算数是否相等,这两个运算符都会进行类型转换。 规则: 值 null undefined 相等。...检查相等性,不能把 null undefined 转换成其他值。 如果某个运算数是 NaN,等号将返回 false等号将返回 true。...("5" == 5) 全等号等号 两个运算符所做的与等号等号相同,只是它们检查相等性前,不执行类型转换。...== iNum);//输出 "true" 条件运算符(三目运算符) java相同 赋值运算符 = += -= *= /=等java相同 逗号运算符 逗号运算符可以一条语句中执行多个运算

2.5K150

【JS】646- 1.2w字 | 初中级前端 JavaScript 自测清单 - 1

常见比较 JS 的值的比较与数学很类型: 大于/小于/大于等于/小于等于:a>b / a=b / a<=b ; 判断相等: // 使用 ==,严格等于,不关心值类型 // == 运算符会对比较的操作数做隐式类型转换...,再比较 '1' == 1; // true // 使用 ===,严格相等,关心值类型 // 将数字值 -0 +0 视为相等,并认为 Number.NaN 不等于 NaN。...十、条件运算符:if '?' 1. if 语句 if 语句条件表达式,会将表达式转换为布尔值,为 truthy 执行里面代码。...如果要显式地将它们的返回值(或者表达式)转换为布尔值,请使用双重运算符(即!!)或者Boolean构造函数。JavaScript 里有三个逻辑运算符:||(或),&&(与),!()。 2....for 语句用于创建一个循环,它包含了三个可选的表达式,这三个表达式被包围在圆括号之中,使用分号分隔,后跟一个用于循环中执行的语句(通常是一个块语句)。

1.6K50

1.2w字 | 初中级前端 JavaScript 自测清单 - 1

常见比较 JS 的值的比较与数学很类型: 大于/小于/大于等于/小于等于: a>b / a=b / a<=b ;// 使用 ==,严格等于,不关心值类型 // == 运算符会对比较的操作数做隐式类型转换...,再比较 '1' == 1; // true // 使用 ===,严格相等,关心值类型 // 将数字值 -0 +0 视为相等,并认为 Number.NaN 不等于 NaN。...十、条件运算符:if '?' 1. if 语句 if 语句条件表达式,会将表达式转换为布尔值,为 truthy 执行里面代码。...如果要显式地将它们的返回值(或者表达式)转换为布尔值,请使用双重运算符(即!!)或者Boolean构造函数。 JavaScript 里有三个逻辑运算符:||(或),&&(与),!()。 2....for 语句用于创建一个循环,它包含了三个可选的表达式,这三个表达式被包围在圆括号之中,使用分号分隔,后跟一个用于循环中执行的语句(通常是一个块语句)。

1.1K00

js=====有什么不同之处

javaScript具有严格类型转换相等比较。 对于严格相等比较符,要求比较的对象必须具有相同的类型,并且: 两个字符串相应位置具有相同的字符序列,相同的长度相同的字符严格相等。...两个数字在数值上相等(具有相同的数值)严格相等。 NaN不等于任何东西,包括NaN。 正负彼此相等。 如果两个布尔操作数都为真或两者都为假,则它们严格相等。...NullUndefined类型==正确(但使用===不正确)。...[即 (Null == Undefined)为true但是(Null === Undefined)为false] 简单来说: == 代表相同, ===代表严格相同, 为啥这么说呢,  这么理解: 进行双等号比较时候...操作数1 == 操作数2,  操作数1 === 操作数2 比较过程:   双等号==:    (1)如果两个值类型相同,再进行三个等号(===)的比较   (2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换比较

1.9K30

大话 JavaScript(Speaking JavaScript):第六章到第十章

三个等号(===)用于比较两个值(参见相等运算符)。 注释 有两种注释: 通过//进行单行注释,延伸到行的其余部分。...因此,您的代码看起来更一致,并且语句多于一条语句之间切换更容易。 使用分号的规则 本节,我们将讨论 JavaScript 中分号的使用。基本规则是: 通常,语句以分号终止。...不要忘记您可以将单个严格模式函数添加到处于松散模式的文件的选项。 小心处理包 您连接/或缩小文件,您必须小心,严格模式应该打开没有关闭,或者反之亦然。两者都可能破坏代码。...始终使用严格相等,避免宽松相等。只有您想知道为什么应该避免它,才需要了解后者。 相等是不可定制的。JavaScript 的运算符不能被重载,也不能定制相等的工作方式。...例:比较包装实例原始值 宽松相等允许你比较原始值包装原始值: > 'abc' == new String('abc') true 有三个理由反对这种方法。

25610

JavaScript强化教程——使用误区

本文为 H5EDU 机构官方 HTML5教程,主要介绍:JavaScript强化教程 —— 使用误区 JavaScript使用误区 本章节我们将讨论 JavaScript使用误区。...赋值运算符应用错误 JavaScript程序如果你 if 条件语句使用赋值运算符的等号 (=) 将会产生一个错误结果, 正确的方法是使用比较运算符的两个等号 (==)。...if 条件语句返回 false (是我们预期的)因为 x 不等于 10: var x = 0; if (x == 10) if 条件语句返回 true (不是我们预期的)因为条件语句执行为 x 赋值 10...比较运算符常见错误 常规的比较,数据类型是被忽略的,以下 if 条件语句返回 true: var x = 10; var y = "10"; if (x == y) 严格的比较运算,=== 为恒等计算符...JavaScript的加法连接都使用 + 运算符。

63660

如何处理 JavaScript 比较的临界情况

文档 的规则。以上代码的第 6 行,比较了一个基本类型值一个基本类型值。在这种情况下,采用规则 №11 。该算法的结果是一个空字符串。 在下一步,将一个空字符串 false比较。...我们看例子之前,我要给你个提示:永远不要对布尔值(true false使用双等于号。...文档 的规则。其中一个被比较的值是非基本类型比较数组布尔值会调用 ?ToPrimitive() 抽象操作(规则 №11)。 之后的三步(译注:第二个 if 子句)直接了当。...应谨记两侧被比较的值是 0、一个空字符串或只包含空格的字符串使用等号是个不好的做法。 下一件应牢记之事是避免对基本类型使用等号。唯一能使用它的时机是一致性检查。...借助该方法,我们终于可以无副作用的情况下执行一致性比较。最后我们可以讲,使用等号只对基本类型安全,对基本类型则不安全。

1.7K30

【点滴】JavaScript的 Object.is() 与 === 运算符有什么区别?

前端点滴front-end tips ---- 分类:JavaScript | Object, Type 如果要检查 JavaScript 的相等性,有两个比较运算符:双等号运算符(==)等号运算符...简而言之,双等号运算符(==)仅仅比较值,而三等号运算符(===)可以比较类型。但是还有第三个选项 Object.is(),除了 NaN,+0 -0 之外,其行为与三等号于运算符相同。...以下是一些例子,可进一步明确说明: {} === {}; // false Object.is({}, {}); // false 1 === 1; // false Object.is(1, 1);...// true 以下代码是 ES5 模拟实现的Object.is: Object.defineProperty(Object, 'is', { value: function(x, y) {...if (x === y) { // 针对+0 不等于 -0的情况 return x !

34010

25 道神奇的 javascript 示例,全答对算我输!!!

至少一个操作数是 NaN ,便是最后一种情况。每个 NaN 都要比较无穷无尽的一切,包括自己。 5. 它是 fail 你不会相信,但... (![] + [])[+[]] + (!...它从未成为标准,但被广泛使用在早期的 JS 代码标准演变出新的 API (例如 document.getElementById)这个 API 调用就被废弃了,标准委员会必须决定如何处理它。...其与 undefined 使用严格相等比较得出 false使用抽象相等比较 得出 true 是因为这个有意的对标准的违反明确地允许了这一点。 9....它可以转换整数浮点的字符串表示,以及字符串值 true ,false null 。 如果它不能解析特定的值,它将转化为 NaN 。...三个数字的比较 1 true 3 > 2 > 1; // -> false 说明: 为什么会这样呢?其实问题在于表达式的第一部分。

1K10

Python 基础知识学习

每个变量在内存创建都包括变量的标识名称和数据这些信息。 每个变量使用前都必须赋值变量赋值以后该变量才会被创建。 等号=用来给变量赋值。...等号=运算符左边是一个变量名,等号=运算符右边是存储变量的值。...Python程序语言指定任何0空null值为true0 或者 null为false。...使用 and 与表示只有两个条件同时成立的情况下判断条件才成功 4)、if有多个条件使用括号来区分判断的先后顺序括号的判断优先执行    此外 and or 的优先级低于>大于、<小于等判断符号...while 判断条件 执行语句…… 执行语句可以是单个语句语句块。判断条件可以是任何表达式任何、或空null的值均为true。判断条件假false循环结束。

1.7K10

JavaScript高级程序设计(第四版)》学习笔记(三)第3章(续)

递增递减操作符 前置型:++(--)值先递增(递减),后执行语句 后置型:值++(–) 先使用值执行语句,再递增(递减) i++ ++i 注意:布尔值++ false 会变成 1 应用于对象,先调用对象的...一元加减操作符 加的值是非数值,则会执行与使用 Number()转型函数一样的类型转换 一元减同理 let str = "ljc"; str = -str; //NaN 3.5.2 位操作符...等于不等于 2....true_value : false_value; 第一个表达式为真,variable的值为true_value,为假则为false_value 3.5.10 赋值操作符 乘后赋值(*=)...: console.log("Between 10 and 20."); break; default: console.log("More than 20."); } switch 语句比较每个条件的值

42920

JavaScript 编程精解 中文第三版 一、值,类型运算符

任何一段离散信息都可以简化为一的序列,从而以位表示。 例如,我们可以位来表示数字 13。...,-等)也包含在排序比较字符串JavaScript 从左向右遍历字符,逐个比较 Unicode 代码。 其他类似的运算符则包括>=(大于等于),<=(小于等于),==(等于)!...console.log("Apple" == "Orange") // → false JavaScript ,只有一个值不等于其自身,那就是NaN(Not a Number,数值)。...相同类型的值之间使用==符号进行比较,其运算结果很好预测:除了NaN这种情况,只要两个值相同,则返回true。但如果类型不同,JavaScript 则会使用一套复杂难懂的规则来确定输出结果。...第二个三个,只有被选中的值才会求值。 本章小结 本章,我们介绍了 JavaScript 的四种类型的值:数字,字符串,布尔值未定义值。

1K80

JavaScript基础-运算符与条件语句

JavaScript编程,运算符条件语句是构建逻辑控制程序流程的核心工具。...比较运算符 用于比较值,如等于==、严格等于===、不等于!=、严格不等于!==、小于等。 3. 逻辑运算符 用于组合多个布尔表达式,如与&&、或||、!。 4....二、常见问题与易错点 易错点1:比较运算符的误用 问题:使用==而非===进行比较,导致类型转换带来的意外结果。 避免方法:优先使用严格等于===,它要求两边的值类型都相等。..."C" : "D or F"; console.log(result); // 简洁的三元运算符实现成绩等级划分 结语 理解熟练运用JavaScript的运算符与条件语句,是构建逻辑复杂度逐渐增加的应用程序的基础...通过识别并避免上述易错点,不仅能够提升代码的执行效率,还能显著增强代码的可读性可维护性。希望本文的解析与示例能帮助你JavaScript的学习之路上更进一步,写出更加高效、清晰的代码。

6810

JavaScript字符串间的比较

字符串JavaScript几乎无处不在,在你处理用户的输入数据的时候,在读取或设置DOM对象的属性操作cookie,当然还有更 多…。...@雪斌JavaScript的字符串操作一文中讲的很详细,但是对于涉及Js字符串的比较,还是有必要再学习探究下的。.../49 6)数字字符串比较,且字符串为纯数字,则将数字字符串转成数字的时候会转换为NaN,NaN和数字比较不论大小都返回false(NaN “Not a Number”。...如果””来比较字符串,那么JavaScript把它们作为Unicode来比较, 但显然,人们浏览网页不会把文本当作Unicode来阅读:) 比如在西班牙语,按照传统的排序,”ch”将作为一个字符排在...Javascript解释器,只”提升”var命令定义的变量,对不使用var命令、直接赋值的变量不起作用,这就是为什么不加var会报错的原因。

9.3K90

Python基础语法入门篇(一)

3.标识符关键字 计算机编程语言中,标识符(或者叫变量)是用户编程使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。...= 不等于:比较两个对象是否不相等(python2 代表不等于) (a !...的前边是False的情况下,那么后边的代码不会执行 or:只要有一方为True,那么结果就是True 逻辑与运算逻辑或运算取值为什么是那种规则。...,用来获取数据之前给用户的一个简单提示 input()在从键盘获取了数据以后,会存放到等号右边的变量 input()会把用户输入的任何值都作为字符串来对待 7.流程控制语句 7.1...小总结: if判断语句的作用:就是满足一定 条件才会执行代码块语句,否则就不执行代码块语句

36520
领券