`

==和===是有区别的

 
阅读更多
对于string,number等基础类型,==和===是有区别的,进行“数据类型”比较
Array,Object等高级类型,==和===是没有区别的,进行“指针地址”比较

JavaScript 是弱类型语言,这就意味着,等于操作符==会为了比较两个值而进行强制类型转换。


var str = "1";
var numb = 1;
str == numb; //true
str === numb; //false
false == "0" // true
false ==="0" // false


虽然都是等于操作符,但是当其中有一个操作数为对象时,行为就不同了:
比较的不是值是否相等,而是是否属于同一个身份;也就是说,只有对象的同一个实例才被认为是相等的。

结论:
推荐使用严格等于操作符。如果类型需要转换,应该在比较之前显式的转换, 而不是使用语言本身复杂的强制转换规则。
分享到:
评论

相关推荐

    java中equals和==的区别

    理解这两个概念的区别是非常重要的,因为它们对编程的正确性和性能都有很大的影响。 首先,我们需要了解 Java 中的内存分配机制。Java 中的变量可以分为两种:值类型和引用类型。值类型的变量直接存储在栈中,而...

    ==和equals的区别

    在 Java 中,比较值大小有两种方法:== 和 equals,这两个方法的使用场景和比较规则不同,下面我们将详细探讨它们的区别。 基本数据类型和引用数据类型 在 Java 中,有两种数据类型:基本数据类型和引用数据类型。...

    ==和equals方法究竟有什么区别

    在Java编程语言中,`==`和`equals()`方法是用来比较对象之间关系的两种常见方式,但它们在使用上有着显著的区别。 首先,`==`运算符主要用于比较基本类型(如int、char、byte等)的值是否相等,或者比较引用类型...

    浅析Javascript中“==”与“===”的区别

    一、对于string,number等基础类型,==和===是有区别的 1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等 2)同类型比较,直接进行“值”比较,两者结果一样 ...

    前端面试题之baseJS-==和===的区别.zip

    总之,“==”和“===”的区别是前端面试中常见的基础问题,理解并熟练运用它们有助于提升代码质量和面试表现。在日常工作中,不断深化对JavaScript的理解,并将其应用到实践中,是成为一名优秀前端开发者的关键。

    equals(Object) 与 == 的区别

    假设我们有两个 String 对象 s1 和 s2,它们的内容都是 "abc"。我们可以使用 == 运算符来比较这两个对象,但结果却是 false。这是因为 == 运算符比较的是两个对象的引用(references),而不是它们的内容。 那么,...

    java中==和equals的区别

    对于开发的程序员小伙伴,大家肯定对于==和equals不陌生,而且会经常用到他,那么又有几个能够说清楚了==和equals是怎么回事呢?他了呢两个有什么区别呢? 比较 == 比较的是栈中的值,基本数据类型是变量值,引用...

    java中equals和==的区别.

    在Java编程语言中,`equals()`方法和`==`运算符是用于比较对象的两种不同方式,它们在处理不同类型的数据时有不同的行为。了解这两者的区别对于编写正确的代码至关重要。 `==`运算符: 1. `==`用于比较基本类型的...

    java 资料 equals 与== 的区别

    Java 中的equals和==的区别 Java 是一种面向对象的编程语言,其中有两种数据类型:基本数据类型和引用数据类型。基本数据类型包括整数类型、浮点数类型、字符类型、布尔类型等,共有八种;而引用数据类型则包括 ...

    java中equals和==的区别.docx

    Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个常用的操作符,经常用于比较对象或变量的值。然而,许多开发者不知道它们之间的区别,或者误用它们,导致程序出错。下面我们将详细解释 equals 和 == 的...

    java中equals和==的区别.pdf

    在Java中,比较两个对象是否相等时,经常使用到的运算符有"=="和"equals"。虽然两者都可以用于比较,但它们有着本质的区别,特别是在比较对象和基本数据类型值时。 首先,我们来了解"=="运算符。在Java中,"==...

    浅析Javascript中双等号(==)隐性转换机制

    1、对于string,number等基础类型,==和===是有区别的  1)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等  2)同类型比较,直接进行“值”比较,两者结果...

    浅谈java 中equals和==的区别

    在Java编程语言中,`equals()` 和 `==` 运算符经常被用来比较对象,但它们之间存在着显著的区别。理解这些差异对于编写正确、健壮的代码至关重要。以下是关于 `equals()` 和 `==` 在Java中的详细解释。 首先,`==` ...

    java equals和==的区别详解

    总之,理解和正确使用`equals()` 和 `==` 是Java编程中的基础,这有助于避免潜在的错误并提高代码的可读性和可靠性。在编写代码时,应始终根据需要重写`equals()` 方法以确保正确比较对象的内容,尤其是在自定义类中...

    java中equals和==的区别的剖析.pdf

    在Java编程语言中,`equals()` 和 `==` 是两种常用的比较操作,它们在处理不同数据类型时有着明显的区别。`==` 操作符主要用于基本数据类型(如 int, double 等)以及引用类型的变量,它比较的是两个变量所指向的...

    String中==与equals区别验证

    这两者之间的区别是理解Java内存管理和对象引用的关键。以下是对给定代码片段中所展示概念的详细解析。 ### `==` 运算符 `==` 运算符主要用于比较两个变量或对象的引用是否指向内存中的同一位置。换句话说,它检查...

Global site tag (gtag.js) - Google Analytics