SORU
5 NİSAN 2010, PAZARTESİ


Koşul deyimi, iyi uygulama veya değişken olarak atamak?

Bir yıl önce Java gibi klasik OO dillerden JavaScript taşındım. Aşağıdaki kodu kesinlikle tavsiye edilmez (hatta değil) doğru Java

if(dayNumber = getClickedDayNumber(dayInfo))
{
    alert("day number found : "   dayNumber);
}
function getClickedDayNumber(dayInfo)
{
    dayNumber = dayInfo.indexOf("fc-day");
    if(dayNumber != -1) //substring found
    {
        //normally any calendar month consists of "40" days, so this will definitely pick up its day number.
        return parseInt(dayInfo.substring(dayNumber 6, dayNumber 8));
    }
    else return false;
}

Temelde ben sadece eğer boolean gibi Eğer koşul deyimi bir değer, ve hemen atanan değeri kontrol etmek için bir değişken atamak istiyorum.

İçin daha güvenli bir bahis, ben genellikle ayrı iki kod satırlarını, ilk atama sonra kontrol değişken, ama şimdi buldum bunu, ben sadece merak olsun, bu iyi bir uygulama ya da gözlerinde değil deneyimli JavaScript geliştiriciler?

CEVAP
5 NİSAN 2010, PAZARTESİ


Tavsiye etmem. Sorun, değerleri karşılaştırmak için deneyin ortak bir hata gibi görünüyor, ama == === yerine = tek kullanımlık. Bu gördüğünüzde örneğin,:

if (value = someFunction()) {
    ...
}

eğer yapmak istedikleri buysa, ya da eğer bu yazma niyetinde olduklarını bile bilmiyorsun:

if (value == someFunction()) {
    ...
}

Eğer gerçekten yerine atama yapmak istiyorsan, açık bir karşılaştırma yapmak da tavsiye ederim:

if ((value = someFunction()) === <whatever truthy value you are expecting>) {
    ...
}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Canceriansoul

    Canceriansou

    15 Ocak 2011
  • inovationgmbh

    inovationgmb

    28 EYLÜL 2010
  • Mega64

    Mega64

    24 ŞUBAT 2006