3

I have some code I'm writing and in certain places == is required and in others = is required. Can someone explain the differences or point me in the direction of the resource that can?

Example:

if ($('#block').css.display=='none') {
    $('#block').css.display='block';
}

The only thing I can come up with is that in one I'm changing and in the other I'm checking. But in both I am referring to equality.

6
  • 2
    = is assignment a = b means put b inside a. . == is unstrict equality, a==b means a is roughly equal to b . a===b is strict equality and the one you should be using Commented Aug 8, 2012 at 19:20
  • 5
    Any JavaScript language guide will go into details. Commented Aug 8, 2012 at 19:20
  • But to be fair until I asked this I wasn't aware of ===, so now I am in need to know what's the diff so thanks for that link. Commented Aug 8, 2012 at 19:28
  • 2
    @RKS This page covers JavaScript expressions in general. Commented Aug 8, 2012 at 19:29
  • Related topic for PHP: stackoverflow.com/questions/2063480/the-3-different-equals Commented Mar 24, 2018 at 21:22

5 Answers 5

19

= is the assignment operator. It sets a variable (the left-hand side) to a value (the right-hand side). The result is the value on the right-hand side.

== is the comparison operator. It will only return true if both values are equivalent after coercing their types to the same type.

=== is a more strict comparison operator often called the identity operator. It will only return true if both the type and value of the operands are the same.

I would check out CodeCademy for a quick intro to JavaScript.

If you prefer to read more, MDN is a great intro as well.

For those concerned about the source of the term "identity operator" jbabey pointed out that JavaScript: The Definitive Guide seems to mention it.

Sign up to request clarification or add additional context in comments.

4 Comments

Both == and === check the types of the operands. It's what they may do with the result of those checks that differentiates them.
@jbabey Could you provide a source for "identity operator"? ECMA-262 refers to it as "The Strict Equals operator."
@Dennis i think it may have been on MDN at one point in time. I'm not sure where it originated, but it is a fairly common phrase (google for "javascript identity operator")
@Dennis ah, here we go. The very widely known book JavaScript: The Definitive Guide uses the term "Identity operators". it probably originated here (or at least became much more common).
6

= assigns a value to a variable

== checks if the two parameter are equal to each other

=== checks if the two parameters are equal to each other and if their type is the same


! not operator

!= checks if the two parameters are not equal to each other

!== checks if the two parameters are not equal to each other or the type is not the same


> checks if one parameter is greater than the other

>= checks if one parameter is greater than or equal to the other

1 Comment

i think you meant: "checks if the two parameters are not equal to each other OR the type is not the same". DeMorgans :P
4

== is used to test if the value on the left is equal to the value on the right.

= is used to assign the value on the right to the variable on the left.

Comments

4

In javascript you have also the ===.

= This is for set the value to the variable.

== This is for compare if the value is the same.

=== This is for compare if the value is the same and also the type is the same.

Comments

3

The = operator is an assignment operator. You are assigning an object to a value. The == operator is a conditional equality operation. You are confirming whether two things have equal values. There is also a === operator. This compares not only value, but also type.

Assignment Operators

Comparison Operators

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.