JavaScript karşılaştırmasında hangi operatör eşittir (== vs ===)?

JavaScript'i geçmek için JSLint kullanıyorum ve bir karşılaştırma idSele_UNVEHtype.value.length == 0 inside gibi bir şey yaptığınızda == (iki eşit işaret) yerine === (üç eşit işaret) koymak yerine çok fazla cümle döndürür Operatör if .

== ila === değiştirmek için performans avantajı var mı?

Pek çok karşılaştırma operatörü olduğu için performansta herhangi bir gelişme olacaktır.

Tip dönüşümü gerçekleşmezse, kazanç == ile karşılaştırılacak mı?

5673
11 дек. bcasp tarafından belirlenir 11 Ara 2008-12-11 17:19 '08, 17:19 2008-12-11 17:19
ответ 51 cevaplar
  • 1
  • 2

Kimlik işleci ( === ), eşitlik işleciyle ( == ) aynı şekilde davranır, ancak tür dönüştürmenin gerçekleştirilmediği ve türlerin eşit olarak kabul edilmesi gerekenlerle aynı olması gerekir.

Referans: Javascript Eğitimi: Karşılaştırma Operatörleri

== operatörü, gerekli herhangi bir dönüşüm türünü gerçekleştirdikten sonra eşitliği karşılaştırır. === operatörü dönüşümü gerçekleştirmez, bu nedenle iki değer eşleşmezse, === basitçe false . Her ikisi de eşit derecede hızlı.

Douglas Crockford mükemmel javascript alıntı : iyi parçalar ,

JavaScript’te iki eşitlik operatörü vardır: === ve !== ve onların kötü ikizleri == ve != . İyi olanlar beklediğiniz gibi çalışır. Aynı türden iki işlenen aynı değere sahipse, === true oluşturur ve !== false üretir. Kötü ikizler, operandlar aynı tip olduğunda doğru olanı yaparlar, ancak farklı türleri varsa değerleri zorlamaya çalışırlar. Bunu yaptıkları kurallar karmaşık ve aşılmazdır. İşte ilginç vakalardan bazıları:

 '' == '0' // false 0 == '' // true 0 == '0' // true false == 'false' // false false == '0' // true false == undefined // false false == null // false null == undefined // true ' \t\r\n ' == 0 // true 

Geçiş eksikliği endişe verici. Benim tavsiyem asla kötü ikizleri kullanmamak. Bunun yerine, her zaman === ve !== kullanın. Yukarıdaki karşılaştırmaların tümü === operatörüyle false .


güncelleme:

Referanslarda @Casebash , yorumlarda ve @Phillipe Laybaert'te iyi bir noktaya değindi . Referans türleri için, == ve === birbirleriyle tutarlı hareket ederler (özel durum hariç).

 var a = [1,2,3]; var b = [1,2,3]; var c = { x: 1, y: 2 }; var d = { x: 1, y: 2 }; var e = "text"; var f = "te" + "xt"; a == b // false a === b // false c == d // false c === d // false e == f // true e === f // true 

Özel bir durum, değişmezin, aynı değişmezi toString veya valueOf nedeniyle değerlendiren bir nesneyle karşılaştırılmasıdır. Örneğin, bir dize değişmezini, String yapıcısı tarafından oluşturulan bir string nesnesiyle karşılaştırmayı düşünün.

 "abc" == new String("abc") // true "abc" === new String("abc") // false 

Burada, == operatörü iki nesnenin değerlerini kontrol eder ve true değerini döndürür, ancak === aynı türde olmadıklarını ve false döndürdüklerini görür. Hangisi doğru? Bu gerçekten karşılaştırmaya çalıştığınız şeye bağlıdır. Tavsiyem soruyu tamamen atlatmak ve basitçe string nesneleri oluşturmak için String yapıcısını kullanmamaktır.

bağlantı
http://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3

5840
11 дек. 11 Aralık tarihinde Kertenkele Bill tarafından verilen 2008-12-11 17:25 '08, 17:25, 2008-12-11 17:25

== işlecini kullanma (Eşitlik)

 true == 1; //true, because 'true' is converted to 1 and then compared "2" == 2; //true, because "2" is converted to 2 and then compared 

Operatör kullanımı === (Kimlik)

border=0
 true === 1; //false "2" === 2; //false 

Bunun sebebi, eşitlik operatörünün == bir zorlama türüne sahip olmasıdır , yani tercüman bir karşılaştırmadan önce değerleri dönüştürmeye çalışır.

Öte yandan, Identity === operatörü bir zorlama türü gerçekleştirmez ve bu nedenle karşılaştırırken değerleri dönüştürmez.

1016
11 дек. Cevap Andreas Grech tarafından 11 Aralık'ta verildi . 2008-12-11 17:33 '08, 17:33 2008-12-11 17:33

Buradaki cevaplarda, eşittir ne anlama geldiği hakkında bir şey okumadım. Bazıları === eşit ve aynı tipte olduğunu söyleyecektir, fakat değildir. Aslında, bu her iki işlenenin aynı nesneyi ifade ettiği veya değer türleri söz konusu olduğunda aynı değere sahip olduğu anlamına gelir.

Öyleyse aşağıdaki kodu alalım:

 var a = [1,2,3]; var b = [1,2,3]; var c = a; var ab_eq = (a === b); // false (even though a and b are the same type) var ac_eq = (a === c); // true 

Burada da aynı:

 var a = { x: 1, y: 2 }; var b = { x: 1, y: 2 }; var c = a; var ab_eq = (a === b); // false (even though a and b are the same type) var ac_eq = (a === c); // true 

Veya hatta:

 var a = { }; var b = { }; var c = a; var ab_eq = (a === b); // false (even though a and b are the same type) var ac_eq = (a === c); // true 

Bu davranış her zaman açık değildir. Hikayede, eşit ve aynı türde olmaktan daha fazlası var.

kural:

Değer türleri için (sayılar):
a === b , eğer a ve b aynı değere sahipse ve aynı tipe sahipse true değerini döndürür.

Referans tipleri için:
a === b , eğer a ve b aynı nesneye başvurursa true değerini döndürür.

Dizeler için:
a === b , hem b hem de b dizeleriyse ve aynı karakterleri içeriyorsa true değerini döndürür.


Dizeler: özel durum ...

Dizeler değer türleri değildir, ancak Javascript'te değer türleri gibi davranırlar, bu nedenle dizedeki karakterler aynı olduğunda ve aynı uzunlukta olduklarında "üçüncü" olurlar (üçüncü kuralda açıklandığı gibi)

Şimdi ilginçleşiyor:

 var a = "12" + "3"; var b = "123"; alert(a === b); // returns true, because strings behave like value types 

Ama buna ne dersin?

 var a = new String("123"); var b = "123"; alert(a === b); // returns false !! (but they are equal and of the same type) 

Dizelerin değer türleri gibi davrandığını düşündüm? Kime sorduğunuza göre değişir ... Bu durumda, a ve b aynı tip değildir. a , Object türünde ve b , string . string yapıcısını kullanarak bir dize nesnesi oluşturmanın çoğu zaman bir dize gibi davranan Object türü gibi bir şey oluşturduğunu unutmayın.

564
05 июня '09 в 22:11 2009-06-05 22:11 Philippe Leybaert'e 05 Haziran 099 'da 10:11 de cevap verdi 2009-06-05 22:11

== ve === arasındaki eşitlik karşılaştırmasının ilginç bir grafiksel gösterimi.

Kaynak: http://dorey.github.io/JavaScript-Equality-Table/


var1 === var2

JavaScript eşitliğini test etmek için === kullanırken, her şey olduğu gibi. Değerlendirme yapılmadan önce hiçbir şey dönüştürülmez.

2019

553
05 мая '14 в 8:21 2014-05-05 08:21 Cevap, SNAG tarafından 05 Mayıs 14: 08: 21'de verilmiştir. 2014-05-05 08:21

Bu ipucunu ekleyeyim:

Şüpheniz varsa, spesifikasyonu okuyun!

ECMA-262, JavaScript'in lehçe olduğu bir betik dili özelliğidir. Elbette pratikte, bir şeylerin nasıl ele alınması gerektiğinin ezoterik tanımından ziyade en önemli tarayıcıların nasıl davrandığı önemlidir. Ancak neden yeni String'in ("a")! == "a" .

Lütfen bu sorunu açıklığa kavuşturmak için şartnameyi nasıl okuyacağımı açıklayayım. Bu çok eski konuda hiç kimsenin çok garip bir etki için bir cevabının olmadığını gördüm. Eğer şartnameyi okuyabilirseniz, mesleğinizde size çok yardımcı olacaktır. Bu edinilmiş bir beceridir. Öyleyse devam et.

=== için bir PDF dosyası bulmak beni şartnamenin 56. sayfasına yönlendirir: 11.9.4. Strict operatörü Eşittir (===) ve şartnameden geçtikten sonra şunu buldum:

11.9.6 Katı Eşitlik Karşılaştırma Algoritması
X ve y değerlerinin olduğu x === y karşılaştırması doğru veya yanlış oluşturur. Böyle bir karşılaştırma aşağıdaki gibi yapılır:
1. Tür (x), Tür (y) den farklıysa false döndürün .
2. (x) tipi Tanımsız ise, true değerini döndürün.
3. Type (x) Null ise, true değerini döndürün.
4. Tip (x) bir sayı değilse, 11. adıma atlayın.
5. Eğer x, NaN ise , false döndürün .
6. y, NaN ise , false döndürün .
7. Eğer x, y ile aynı sayısal değerse, true değerini döndürün .
8. x +0 ve y ise -0 ise, true değerini döndürün.
9. x, -0 ve y, +0 ise, true değerini döndürün.
10. false döndür .
11. Eğer Type (x), String ise, eğer x ve y tamamen aynı karakter dizileriyse (aynı uzunluk ve aynı pozisyonlarda karşılık gelen pozisyonlarda); Aksi takdirde, false döndürün .
12. Eğer Tür (x) boolean ise, eğer x ve y her ikisi de doğru ya da her ikisi de yanlış ise true ; Aksi takdirde, false döndürün .
13. Eğer x ve y aynı nesneye aitse veya birbirlerine bağlı nesnelerle ilgiliyse true değerini döndürün (bkz. 13.1.2). Aksi takdirde, false döndürün .

Aşama 11 ilginç, evet, karakter dizileri değer türleri olarak kabul edilir. Fakat bu yeni String'in ("a") nedenini açıklamıyor ! == "a" . ECMA-262 olmayan bir tarayıcımız var mı?

Çok hızlı değil!

Operand tiplerini kontrol et. Bunları typeof () içine alarak kendiniz deneyin. Yeni String'in ("a") bir nesne olduğunu ve adım 1'in kullanıldığını buldum: türler farklıysa false dön.

Yeni String'in ("a") neden bir string döndürmediğini merak ediyorsanız, spesifikasyonu okuyan bazı alıştırmalara ne dersiniz? İyi eğlenceler!


Aidiakapi bunu aşağıdaki yorumda yazdı:

Şartname

11.2.2 Yeni operatör :

Type (constructor) bir nesne değilse, bir TypeError istisnasını yükseltin.

Başka bir deyişle, String Object türünde değilse, yeni operatörle kullanılamaz.

new, daima dize yapıcıları için bile bir nesne döndürür. Ve ne yazık ki! Dizge değerinin semantiği (bkz. Adım 11).

Ve bu nihayet demek: yeni String ("a")! == "a" .

254
28 нояб. Cevap nally 28 nov verilir . 2009-11-28 21:18 '09 21:18 2009-11-28 21:18

PHP ve JavaScript'te, bu katı bir eşitlik operatörüdür. Bu, tür ve değerleri karşılaştıracağı anlamına gelir.

95
12 мая '10 в 15:58 2010-05-12 15:58 Cevap Shiki tarafından 12 Mayıs '10 'te 15:58 2010-05-12 15:58 tarihinde verilmiştir.

Aşağıdaki kodu kullanarak Firebug kullanarak Firefox'ta test ettim:

 console.time("testEquality"); var n = 0; while(true) { n++; if(n==100000) break; } console.timeEnd("testEquality"); 

ve

 console.time("testTypeEquality"); var n = 0; while(true) { n++; if(n===100000) break; } console.timeEnd("testTypeEquality"); 

Sonuçlarım (beş kez kontrol edildi ve ortalaması alındı):

 ==: 115.2 ===: 114.4 

Bu yüzden, hafif bir farkın (bu 100.000'den fazla yinelemedir, hatırlayın) önemsiz olduğunu söyleyebilirim. Performans nedeni değildir === . Güvenlik türü (javascript'e gideceğiniz kadar güvenli) ve kodun kalitesi.

91
25 дек. Cevap, 25 Aralık'ta Simon Scarfe tarafından verildi. 2008-12-25 14:17 '08, 02:17, 2008-12-25 14:17

JavaScript’te bu, aynı değer ve tür anlamına gelir.

Örneğin

 4 == "4" // will return true 

ancak

 4 === "4" // will return false 
88
12 мая '10 в 15:58 2010-05-12 15:58 Cevap Dimitar tarafından 12 Mayıs '10 'te 15:58 2010-05-12 15:58 tarihinde verilmiştir.

=== Operatörüne katı karşılaştırma operatörü denir, == operatöründen farklıdır .

2 varyant a ve b'yi alın.

"A == b" nin a ve b gerçeğini değerlendirmek için bir değer olması gerekir.

"A === b" durumunda, a ve b aynı gerçeğe sahip olması için aynı değerin yanı sıra aynı değerde olmalıdır.

Aşağıdaki örneği al

 var a = 1; var b = "1"; if (a == b) //evaluates to true as a and b are both 1 { alert("a == b"); } if (a === b) //evaluates to false as a is not the same type as b { alert("a === b"); } 

Sonuç olarak ; == operatörünü kullanmak istemediğiniz durumlarda gerçek olarak değerlendirilebilir, bu nedenle === operatörünü kullanmak daha güvenli olacaktır.

% 90 kullanım senaryosunda, hangisini kullandığınız önemli değildir, ancak bir gün beklenmedik bir davranış elde ettiğinizde farkı bilmek faydalı olur.

77
11 дек. Cevap Doktor Jones 11 Aralık'ta verildi. 2008-12-11 17:58 '08, 17:58, 2008-12-11 17:58

Aynı tarafın tür ve değer bakımından eşit olup olmadığını kontrol eder.

örnek:

 '1' === 1 // will return "false" because 'string' is not a 'number' 

Genel örnek:

 0 == '' // will be "true", but it very common to want this check to be "false" 

Başka bir yaygın örnek:

 null == undefined // returns "true", but in most cases a distinction is necessary 
70
12 мая '10 в 15:58 2010-05-12 15:58 Cevap 12 Mayıs'ta 15 : 58'de vsync tarafından verilmektedir 15:58 2010-05-12 15:58

Neden == bu kadar tahmin edilemez?

Boş dizgiyi "" 0 0 ile karşılaştırdığınızda ne elde edersiniz?

<code> Truecode>

Evet, == boş bir dizgeye göre bu doğrudur ve aynı zamanda sayısal sıfırdır.

Ve bu burada bitmiyor, diğeri:

  '0' == false//true Код> 

İşler dizilerle çok garipleşiyor.

  [1] == true//true [] == false//true [[]] == false//true [0] == false//true Код> 

Sonra dizeleri ile Weerder

  [1,2,3] == '1,2,3'//true - ДЕЙСТВИТЕЛЬНО?! '\ r\n\t' == 0//true - Давай! Код> 

Kötüleşmek:

Ne zaman eşittir?

  let A = ''//пустая строка пусть В = 0//нуль пусть C = '0'//нулевая строка A == B//true - ok... B == C//true - пока что так хорошо... A == C//** FALSE ** - Закручивание сюжета! Код> 

Tekrar söyleyeyim:

  (A == B)(B == C)//true (A == C)//** FALSE ** Код> 

Ve bu sadece ilkellerle aldığın çılgın şeyler.

== Nesnelerle == kullandığınızda bu yeni bir delilik seviyesidir.

Bu noktada, muhtemelen merak ediyorum ...

Bu neden oluyor?

İyi, çünkü "üçlü eşitlik" den ( === ) farklı olarak, iki değerin aynı olup olmadığını kontrol eder.

== bir sürü başka şey yapıyor .

İşlevler için özel işlemlere, sıfırlar için özel işlemlere, tanımsız dizgelere, aradığınız dizelere sahiptir.

Oldukça aptallaşıyor.

Aslında, == yaptığı şeyi yapan bir işlev yazmaya çalıştıysanız, şöyle görünür:

  function isEqual (x, y) {//если `==` были функцией   if (typeof y === typeof x) return y === x;   // обрабатываем null и undefined то же самое   var xIsNothing = (y === undefined) || (y === null);   var yIsNothing = (x === undefined) || (x === null);  если (xIsNothing || yIsNothing) возвращается (xIsNothing  yIsNothing);  if (typeof y === "function" || typeof x === "function" ) {   // если любое значение является строкой   // преобразовать функцию в строку и сравнить   if (typeof x === "string" ) {   return x === y.toString();   } else if (typeof y === "string" ) {   return x.toString() === y;   }   return false;   }  if (typeof x === "object" ) x = toPrimitive (x);   if (typeof y === "object" ) y = toPrimitive (y);   if (typeof y === typeof x) return y === x;  // конвертируем x и y в числа, если они еще не используют трюк +   if (typeof x! == "number" ) x = + x;   if (typeof y! == "number" ) y = + y;   // фактически реальный `==` еще более сложный, чем это, особенно в ES6   return x === y; } функция toPrimitive (obj) {   var value = obj.valueOf();   if (obj! == value) возвращаемое значение;   return obj.toString(); } Код> 

Peki bu ne anlama geliyor?

Bunun anlamı == karmaşıktır.

Zor olduğundan, kullandığınızda ne olacağını anlamak zordur.

Bu, hatalarınız olabileceği anlamına gelir.

Öyleyse hikayenin ahlakı ...

Hayatınızı daha az karmaşık hale getirin.

== yerine === kullanın.

Son.

68
09 авг. Cevap Luis Perez 09 Ağustos tarafından verilir . 2016-08-09 19:50 '16, 19:50, 2016-08-09 19:50

Sıkı eşitlik için Javascript dizisi / Karşılaştırma '==='

2019

05 сент. Cevap Samar Panda 05 Eylül. 2015-09-05 16:53 '15 16:53, 2015-09-05, 16:53

Javascript === vs == .

 0==false // true 0===false // false, because they are of a different type 1=="1" // true, auto type coercion 1==="1" // false, because they are of a different type 
52
03 июля '13 в 7:08 2013-07-03 07:08 Cevap kullanıcı tarafından verilir2496033 03 Temmuz 13, 07:08 2013-07-03 07:08

Bu, zorlama türü olmayan eşitlik anlamına gelir Zorlama türü, JavaScript'in diğer veri türlerini otomatik olarak dize veri türlerine dönüştürmediği anlamına gelir.

 0==false // true,although they are different types 0===false // false,as they are different types 2=='2' //true,different types,one is string and another is integer but javaScript convert 2 to string by using == operator 2==='2' //false because by using === operator ,javaScript do not convert integer to string 2===2 //true because both have same value and same types 
51
12 мая '10 в 15:59 2010-05-12 15:59 Cevap 12 Mart '10'da Pop Catalin tarafından 15: 10'da verilecek 2010-05-12 15:59

Tipik bir komut dosyasında performans açısından bir fark olmaz. Daha da önemlisi, bin "===" 'nin 1 kilobayt olması, "==" :)' dan ağırdır :) :) JavaScript profilerleri durumunuzda performans farkı olup olmadığını söyleyebilir.

Ama şahsen, JSLint'in sunduğu şeyi yapardım. Bu öneri, performans sorunları nedeniyle değil, tür kısıtlaması nedeniyle ('\t\r\n' == 0) .

46
16 дек. Cevap ver Constantin 16 Aralık 2008-12-16 17:29 '08, 17:29, 2008-12-16 17:29

Eşit karşılaştırma işleci == karışıktır ve kaçınılması gerekir.

HAVE ile yaşıyorsanız, aşağıdaki 3 şeyi unutmayın:

  • Geçişli değildir: (a == b) ve (b == c) (a == c) ile sonuçlanmaz
  • İhmali karşılıklı olarak hariç tutar: (a == b) ve (a! = B) her zaman a ve b ile ters Boole değerlerine sahiptir.
  • Şüphe durumunda, aşağıdaki doğruluk tablosunu ezberleyin:

JAVASCRİP'TE DOĞRU OPERATÖR TABLOSU

  • Tablodaki her satır 3 karşılıklı "eşit" değer grubudur, yani 2 değerinin eşit == * işareti kullanılarak eşit olduğu anlamına gelir.

** STRANGE: İlk sütundaki iki değerin bu anlamda eşit olmadığını unutmayın. **

 '' == 0 == false // Any two values among these 3 ones are equal with the == operator '0' == 0 == false // Also a set of 3 equal values, note that only 0 and false are repeated '\t' == 0 == false // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- '\r' == 0 == false // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- '\n' == 0 == false // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- '\t\r\n' == 0 == false // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- null == undefined // These two "default" values are not-equal to any of the listed values above NaN // NaN is not equal to any thing, even to itself. 
42
16 сент. Cevap CuongHuyTo tarafından Eylül 16 verilen 2011-09-16 17:25 '11 17:25 2011-09-16 17:25

Kullanımınızdaki iki işlem arasında herhangi bir performans farkı yoktur. Her iki parametre de aynı tür olduğundan, gerçekleştirilecek tür dönüştürmesi yok. Her iki işlem de bir tür karşılaştırmasına ve ardından bir değer karşılaştırmasına sahip olacaktır.

35
11 дек. Cevap verilen cevap Sean 11 Dec 2008-12-11 17:44 '08, 17:44 2008-12-11 17:44

Evet! Önemlidir.

Javascript'teki === operatörü değeri, operatörün == sadece değeri kontrol ettiği tipini (gerekirse tipi dönüştürür) kontrol eder.

2019

35
14 нояб. Cevap. Cevap Aniket Thakur 14 Kas 2014-11-14 09:02 '14 9:02 2014-11-14 09:02
operatör

=== Eşitlik için değişken türlerinin yanı sıra değerleri de kontrol eder.

operatör

== sadece eşitlik için değişkenlerin değerini kontrol eder.

32
12 мая '10 в 16:03 2010-05-12 16:03 Cevap Niraj Choubey tarafından 12 Mayıs 'ta 16:03 2010-05-12 16:03 tarihinde verilmiştir.

Bu sıkı bir test testidir.

Bu, özellikle 0 ile false ve null değerlerini kontrol ediyorsanız iyidir.

Örneğin, eğer varsa:

 $a = 0; 

Sonra:

 $a==0; $a==NULL; $a==false; 

Her şey doğru döner ve istemeyebilirsiniz. 0th array dizinini döndürebilecek veya hata durumunda yanlış verebilecek bir fonksiyonunuz olduğunu varsayalım. Kutuyu "==" false ile işaretlerseniz, kafa karıştırıcı bir sonuç alabilirsiniz.

Yani, yukarıdakiyle aynı, ancak sıkı bir testle:

 $a = 0; $a===0; // returns true $a===NULL; // returns false $a===false; // returns false 
30
12 мая '10 в 16:19 2010-05-12 16:19 Cevap Daniel 'e 12 Mayıs '10, 16:19 2010-05-12 16:19

JSLint bazen malzemeyi değiştirmek için gerçekçi olmayan sebepler verir. === , türler zaten === , == aynı performansa sahiptir.

Bu, yalnızca türler eşleşmediğinde daha hızlı olur; bu durumda türleri dönüştürmeyi denemez, ancak yanlış döndürür.

Bu yüzden, IMHO, JSLint yeni kod yazmak için kullanılabilir, ancak her ne pahasına olursa olsun aşırı optimizasyondan kaçınılmalıdır.

Yani, bir testte == ile === değiştirmek için bir neden yoktur, örneğin if (a == 'test') , bildiğiniz zaman, çünkü bir gerçek sadece bir String olabilir.

Bu şekilde büyük miktarda kod değiştirmek, geliştiricilerin ve hakemlerin zaman harcadığı bir şeydir ve hiçbir şey elde etmez.

29
05 июня '12 в 10:53 2012-06-05 10:53 05 Haziran 12'de verilen kül cevabını 10:53 2012-06-05 10:53

sadece

== type conversion işlenenler arasında bir karşılaştırma anlamına gelir

=== type conversion olmayan işlenenler arasında bir karşılaştırma anlamına gelir

JavaScript'te tür dönüştürme, javaScript'in diğer tüm veri türlerini otomatik olarak dize veri türlerine dönüştürdüğü anlamına gelir.

Örneğin:

 123=='123' //will return true, because JS convert integer 123 to string '123' //as we used '==' operator 123==='123' //will return false, because JS do not convert integer 123 to string //'123' as we used '===' operator 
28
20 марта '15 в 8:05 2015-03-20 08:05 Cevap verilmiştir Amit 20 Mart, 15: 08: 05: 2015-03-20 08:05

Basit bir örnek

 2 == '2' -> true, values are SAME because of type conversion. 2 === '2' -> false, values are NOT SAME because of no type conversion. 
25
ответ дан Vikas 14 мая '15 в 17:45 2015-05-14 17:45