JavaScript'te Değer ve Tür Eşitliği
Diyelim ki, tırnak içindeki bir sayının, tırnaksız aynı sayıya eşit olmamasını istiyorsunuz. Başka bir deyişle, karşılaştırmanın sadece değere göre değil, aynı zamanda veri türüne göre de yapılmasını istiyorsunuz.
Bunun için == operatörü yerine === operatörü kullanılmalıdır. Aşağıdaki örnekte, '3' dizisi ile 3 sayısı karşılaştırıldığında, değişkenler değer olarak eşit olsalar da tür olarak eşit olmadıkları için koşul yanlış olacaktır:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // bu çalışır
}
Ancak iki '3' dizisi karşılaştırıldığında koşul doğru olacaktır:
if ('3' === '3') {
console.log('+++'); // bu çalışır
} else {
console.log('---');
}
Aynı şekilde sayılar karşılaştırıldığında da:
if (3 === 3) {
console.log('+++'); // bu çalışır
} else {
console.log('---');
}
== operatörü ile === operatörü arasındaki fark, tam olarak değerler aynı ancak veri türleri farklı olduğunda ortaya çıkar. Diğer durumlarda bu operatörler aynı şekilde çalışır. Örneğin, farklı sayılar karşılaştırıldığında, elbette '---' çıktısı verilecektir:
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // bu çalışır
}
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Kodu çalıştırmadan, konsola ne yazdırılacağını belirleyin:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}