Perbedaan Operator perbandingan == dan === dalam javaScript

JavaScript memiliki 2 operator untuk membandingkan dua buah nilai, yaitu:

  1. Strict Equality Operator ===. Operator yang ketat, lurus, tanpa basa-basi.
  2. Lenient (Normal) Equality Operator ==. Lebih sabar, bisa memaafkan kesalahan programer saat membandingkan 2 tipe data yang berbeda.

Perbedaannya adalah yang pertama hanya mempertimbangkan jika 2 buah nilai yang dibandingkan meiliki tipe data yang sama, selain itu maka bernilai false. Sedangkan yang kedua akan memaksakan konversi nilai yang berbeda sebelum membandingkannya seperti pada tipe pertama.

Semua programer JavaScript sepakat untuk hanya menggunakan tipe pertama. Alasannya karena konversi otomatis mungkin menimbulkan hasil yang tidak dikehendaki. Karena sifat pemaafnya ini, kesalahan yang dibuat sang programer akan tersembunyi sampai akhirnya timbul masalah.

Strict Equal ===
Membandingkan 2 buah nilai yang berbeda tipe datanya dengan operator ===, sudah pasti bernilai false. Jika kedua buah nilai memiliki tipe data yang sama, pernyataan-pernyataan di bawah ini akan bernilai true.

  • undefined === undefined
  • null === null
  • x === x
  • +0 === -0
  • false === false
  • NAN !== NAN

Nilai nol (0) baik positif atau negatif adalah sama nilainya. Untuk NAN, tidak bisa dibandingkan dengan nilai apapun termasuk dengan nilai NAN sendiri. Tipe data string dan number dibandingkan seperti biasa.

Equal ==
Membandingkan 2 buah nilai, jika keduanya memiliki tipe data sama, bandingkan dengan ‘===’. Selain itu:

  1. undefined == null
  2. number dibandingkan dengan string, konversi string ke number
  3. boolean dibandingkan non-boolean, konversi boolean ke number, kemudian bandingkan (angka 0 bernilai false, 1 true)
  4. membandingkan string atau number dengan object, konversi object ke tipe data primitif, kemudian bandingkan

Contoh-contoh yang sering dijumpai:

0 == false //true
1 == true //true
2 == true //false
2 ? true : false //true, karena 2 !== 0

"" == 0 //true
"" == false //true

1 == "1" //true
"1" == true //true

"2" == true //false
"true" == true //false
"2" ? true : false //true, karena string tidak kosong
"abc" == new String("abc") //true, tipe object dikonversi ke tipe primitif string

Satu yang agak membingunkan di atas adalah pada pernyataan if atau pada operator ternary, angka lebih besar dari 1 bernilai true, namun bernilai false dalam perbandingan.

Berikut ini adalah beberapa contoh perbandingan dengan ‘==’ yang terkenal membingungkan dan dapat menimbulkan kesalahan.

'' == '0' // false
0 == '' // true
0 == '0' // true

false == 'false' // false
false == '0' // true

null == undefined // true
false == undefined // false
false == null // false

' \t\r\n ' == 0 // true

Sumber: http://www.2ality.com/2011/06/javascript-equality.html

Comments

11 responses to “Perbedaan Operator perbandingan == dan === dalam javaScript”

  1. audio shalat Avatar

    oh gitu rupanya gan, TQ

    1. Sibudi Avatar

      iya begitulah

  2. nap ho ga gang Avatar

    Thankfulness to my father who told me concerning this website, this web site is really amazing.

  3. nap ho ga gang Avatar

    Superb, what a web site it is! This webpage gives helpful data to us, keep
    it up.

  4. SEO UK Avatar

    I think this is one of the most impkrtant info for
    me. And i’m glad reading your article. But should remark on few general things, The web site style is perfect, the articles is really excellent : D.
    Good job, cheers

  5. wooden ipad kitchen stand Avatar

    As I website possessor I think the articles here is really superb, thanks
    for your efforts.

  6. Shanna Avatar

    Appreciare this post. Let me try itt out.

  7. icynene UK Avatar

    It’s remarkable in support of me to have a site, which
    is useful designed for my know-how. thanls admin

  8. G1 written test Avatar

    That is a really good tip particularly to those fresh to the blogosphere.
    Short but very accurate information… Appreciate your saring this one.
    A must read article!

  9. yurist_kaSn Avatar

    Получите бесплатную консультацию у квалифицированного юриста на сайте yurista42.ru](https://konsultaciya-yurista42.ru/), где вы можете задать вопрос адвокату онлайн и получить профессиональную помощь по юридическим вопросам.
    Юридическая консультация — важный этап для решения множества правовых вопросов. Профессиональные юристы помогут вам понять сложные правовые аспекты и отстоять ваши права.

    Первым шагом к решению проблемы является обращение к юристу. Юрист выслушает вас и предоставит рекомендации, основанные на вашем конкретном случае.

    Некоторые люди стесняются обращаться за помощью к юристам, считая это излишним. Тем не менее, качественная юридическая помощь может сэкономить значительные средства и время в будущем.

    На сайте konsultaciya-yurista42.ru вы найдете широкий спектр услуг. Здесь работают опытные специалисты, готовые помочь вам в любое время.

  10. karkasnyy_mrEl Avatar

    Постройте свой идеальный каркасный дом|каркасные дома спб|каркасный дом под ключ|каркасный дом спб|каркасный дом под ключ спб|строительство каркасных домов спб|дома каркасные спб|дома каркасные|каркасный дом цена|каркасный дом под ключ в спб|каркасные дома под ключ проекты и цены|строительство каркасных домов в спб|каркасные дома в спб|каркасный дом в спб|строительство каркасных домов в санкт-петербурге|каркасные дома санкт петербург|каркасный дом санкт петербург|строительство каркасных домов в санкт-петербурге|строительство каркасных домов под ключ|каркасные дома спб под ключ|каркасные дома под ключ в спб цены|дом каркасный под ключ|каркасные дома цены|каркасный дом под ключ в спб цена и наслаждайтесь комфортом и качеством!
    Строительство каркасного дома обойдется дешевле благодаря экономии на материалах и рабочих.

Leave a Reply

Your email address will not be published. Required fields are marked *