javascript - 关于 === 的几种表现

查看:120
本文介绍了javascript - 关于 === 的几种表现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

如何解释下面的现象?

var a1 = 'a';
var a2 = new String('a');
var a3 = new String('a');
a1 == a2; // true
a1 == a3; // true
a2 == a3; // false
a1 === a2; // false
a1 === a3; // false
a2 === a3; // false
[]==[] // false
[]===[] // false

解决方案

var a1 = 'a';
var a2 = new String('a');//对象
var a3 = new String('a');//对象
a1 == a2; // true a2转为字符串 也可以理解为 == 是判断等号两边的值是否相等
a1 == a3; // true a3转为字符串
a2 == a3; // false 两个对象判断是否相等 new 了两次, 内存地址不同的两个对象
a1 === a2; // false === 严格等于 同时判断等号两边的值 包括类型
a1 === a3; // false 同上
a2 === a3; // false a2 == a3 返回值为false 则=== 也不可能为true
[]==[] // false 同a2 == a3
[]===[] // false 同a2 === a3

补充:

> new String('a').valueOf()// 并不是 toString.
< "a"

这篇关于javascript - 关于 === 的几种表现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆