我是Javascript的新手。(3周后)。我在试着掌握一些基本知识。所以直接回答我的问题:"3“=== 3返回false。“因为它们不是相同的数据类型或值。”我理解数据类型的差异,因为"3“是一个字符串,3是一个数字。它的价值部分似乎在我身上消失了。它不应该是假的,因为它只是数据类型而不是值的差异?我认为“价值”的意思是3。我们很乐意对此作出澄清。
发布于 2018-01-22 09:53:48
TL;DR:对人类来说,3和"3"的价值是一样的,但是对计算机来说,它们看起来很不一样。
不同数据类型的变量不能具有相同的值,因为它们的数据存储方式不同。字符串单独存储每个字母(因此较长的字符串将需要更大的存储空间),而数字总是占用相同的空间(因此较大的数字不需要比小数字更大的存储空间)。
另一种思考方法是:3是数字3。"3"包含字母3。字母的存储方式与数字不同,所以即使在你看来它们看起来是一样的,3和"3"在计算机中看起来却是非常不同的。
3 (二进制)中的数字可能如下所示:
01000000 00001000 00000000 00000000 00000000 0000000000000
而"3"这封信看起来是这样的:
00000000 00110011
发布于 2018-01-22 09:58:59
==算子(平等)
如果操作数不属于同一类型,则相等运算符将转换它们,然后应用严格比较。如果两个操作数都是对象,那么JavaScript将比较内部引用,当操作数引用内存中的同一个对象时,这些引用是相等的。
==运算符示例
0 == false // true
0 == null // false恒等式/严格等式(===)
如果操作数与完全相等,则标识运算符返回true,没有类型转换。
===运算符示例
3 === 3 // true 3 === '3' // false
Tou可以访问这个站点,了解更多的JavaScript运营商。
发布于 2018-01-22 10:07:02
https://stackoverflow.com/questions/48378603
复制相似问题