js的“==” 和“===”

tho0o 2017-06-30 03:31:51
代码如下:

var c = { x: 1, y: 2 };
var d = { x: 1, y: 2 };


为什么 c == d // false
c === d // false

c 和 d 不是都指向 { x: 1, y: 2 } 吗? 为什么都是 false
...全文
151 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tho0o 2017-06-30
  • 打赏
  • 举报
回复
引用 1 楼 functionsub 的回复:
== 不判断类型,=== 判断类型 == 的时候会对前后做类型转换 比如 1== true,返回true,1 === true 返回false 你的疑问跟这个没关系。 对于你的例子里的c跟d只是2个引用,分别指向2个对象,只是这2个对象里的结构跟数据恰好相等罢了,实际cd分别是2个对象。
谢谢,我弄混淆了,你说的是对的。
xiaojunjor 2017-06-30
  • 打赏
  • 举报
回复

//再一看
c>=d && c<=d
//更懵了
天际的海浪 2017-06-30
  • 打赏
  • 举报
回复
对象和数组是按引用地址进行比较和赋值的,你两个变量中的对象内容虽然一样,但却是不同的引用地址,所以不相等
functionsub 2017-06-30
  • 打赏
  • 举报
回复
== 不判断类型,=== 判断类型 == 的时候会对前后做类型转换 比如 1== true,返回true,1 === true 返回false 你的疑问跟这个没关系。 对于你的例子里的c跟d只是2个引用,分别指向2个对象,只是这2个对象里的结构跟数据恰好相等罢了,实际cd分别是2个对象。

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧