首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据类型和值类型

数据类型和值类型
EN

Stack Overflow用户
提问于 2018-01-22 09:47:30
回答 4查看 139关注 0票数 1

我是Javascript的新手。(3周后)。我在试着掌握一些基本知识。所以直接回答我的问题:"3“=== 3返回false。“因为它们不是相同的数据类型或值。”我理解数据类型的差异,因为"3“是一个字符串,3是一个数字。它的价值部分似乎在我身上消失了。它不应该是假的,因为它只是数据类型而不是值的差异?我认为“价值”的意思是3。我们很乐意对此作出澄清。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 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

票数 -1
EN

Stack Overflow用户

发布于 2018-01-22 09:58:59

==算子(平等)

如果操作数不属于同一类型,则相等运算符将转换它们,然后应用严格比较。如果两个操作数都是对象,那么JavaScript将比较内部引用,当操作数引用内存中的同一个对象时,这些引用是相等的。

==运算符示例

代码语言:javascript
复制
0    == false      // true
0    == null       // false

恒等式/严格等式(===)

如果操作数与完全相等,则标识运算符返回true,没有类型转换。

===运算符示例

3 === 3 // true 3 === '3' // false

Tou可以访问这个站点,了解更多的JavaScript运营商。

票数 0
EN

Stack Overflow用户

发布于 2018-01-22 10:07:02

你应该把它读成

“===”的两个操作数是而不是相等的,如果它们是而不是相同的数据类型或值

或者更简单地理解:

严格的比较(例如,===)仅是,如果操作数是同类型且内容匹配的.。

来源:比较算子

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48378603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档