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

  • akalyne

    akalyne

    13 Mayıs 2009
  • Jonathan Morrison

    Jonathan Mor

    24 Mart 2010
  • kimberly p

    kimberly p

    23 Ocak 2010