JavaScript'te prompt komutu nasıl kullanılır?

Lotototo

Hectopat
Katılım
21 Eylül 2020
Mesajlar
278
Çözümler
4
Yer
Bodrum
Daha fazla  
Cinsiyet
Erkek
Const sifre = prompt("Şifre gir la")
İf (sifre === 123) {
console.log("Helal la şifre doğru.");
} Else {
console.log("saçma sapan gonuşma la!")
}

Bir pop-up gelsin, bana şifre sorulsun devamında koşula göre konsoldan çıktısını göreyim istiyorum.
Yukarıdaki şekilde konsol bana şifreyi soruyor ama if (sifre === 123) yazınca else kısmını çalıştırıyor yani hep yanlış çıkarıp, 'saçma sapan gonuşma la!' karşılığını veriyor.
Ama if (sifre === "123") yaparsam 123'ü doğru şifre olarak kabul ediyor ve 'Helal la şifre doğru.' diyor.
Ben string olmadığı için 123'ü tırnak içine almadım ama alınca tam istediğim gibi çalıştı. (Konsol şifre yanlış ya da doğru girildiğinde, doğru karşılığı verdi)
Bunun mantığını anlayamadım ya da neyi yanlış yaptığımı anlayamadım. Aydınlatacak var mıdır?
@fako1110 fako hocam selamlar 😁
 
Son düzenleyen: Moderatör:
Prompt'tan aldiginiz result'lar string olarak doner size her zaman. "===" isleci esitligin sagindaki ve solundaki degerlerin turlerini de karsilastirir. prompt'ın sonucu string, 123 integer oldugu icin tur esitligi saglanamaz ve esitlik yanlis olur.

"==" islecini kullanirsaniz gerekli tur donusumunu JS otomatik yapar. Bu durumda 123 == "123" : true olurken 123 === "123" : false olur.
 
Sorguda ya iki eşittir koyacaksın ya da tiplerini eşitleyeceksin
 
Const sifre = prompt("şifre gir la")
İf (sifre === 123) {
console.log("helal la şifre doğru.");
} Else {
console.log("saçma sapan gonuşma la!")
}

Bir pop-up gelsin, bana şifre sorulsun devamında koşula göre konsoldan çıktısını göreyim istiyorum.
Yukarıdaki şekilde konsol bana şifreyi soruyor ama if (sifre === 123) yazınca else kısmını çalıştırıyor yani hep yanlış çıkarıp, 'saçma sapan gonuşma la!' karşılığını veriyor.
Ama if (sifre === "123") yaparsam 123'ü doğru şifre olarak kabul ediyor ve 'helal la şifre doğru.' diyor.
Ben string olmadığı için 123'ü tırnak içine almadım ama alınca tam istediğim gibi çalıştı. (konsol şifre yanlış ya da doğru girildiğinde, doğru karşılığı verdi)
Bunun mantığını anlayamadım ya da neyi yanlış yaptığımı anlayamadım. Aydınlatacak var mıdır?
@fako1110 fako hocam selamlar 😁

Hocam şöyle prompt() fonksiyonu, kullanıcıdan girdi alır ve bu girdiyi her zaman bir string (yazı) olarak döndürür. Yani, kullanıcı 123 girse bile, bu değer aslında "123" olarak kaydeder.

Yani hocam ifadenin if (sifre === 123) kısmında, sifre bir string ("123") iken, 123 bir sayı (number) türündedir. Üçlü eşittir (===) operatörü, hem değerleri hem de türleri karşılaştırır, bu yüzden sifre === 123 ifadesi false döner. Bu durumda else bloğuna gidilir ve "saçma sapan gonuşma la!" mesajı yazdırılır. 😊

Hocam eğer if (sifre === "123") şeklinde yazarsanız, iki taraf da string olduğu için hem tür hem de değer karşılaştırması doğru olur ve "helal la şifre doğru." çıktısını alırsınız.

Özetle hocam, === operatörü hem değer hem de tür karşılaştırması yapar. Eğer sadece değeri karşılaştırmak isterseniz (türü dikkate almadan), == operatörünü kullanabilirsiniz:

Örnek kod şöyle

Const sifre = prompt("şifre gir la");

İf (sifre === "123") {
console.log("helal la şifre doğru.");
} Else {
console.log("saçma sapan gonuşma la!");
}
 

Technopat Haberler

Geri
Yukarı
09:05:00