Andy E'nin çözümünün yeniden kullanılabilir sürümü ile ilgilenenler için. Gerçek karma durumu, bit değeri olarak elde etmek için basit bir işlev yaptım.
/**
* Checks if the location hash is given, empty or not-empty.
*
* @param {String} [href] Url to match against, if not given use the current one
* @returns {Number} An integer to compare with bitwise-operator & (AND)
*/
function getHashState(href) {
var frag = (href || window.location.href).split('#');
return frag.length == 1 ? 1 : !frag[1].length ? 2 : 4;
}
Sen Bitwise VE-operatörü (&
) ile kolayca dönüş değerlerini karşılaştırabilirsiniz.
if (getHashState() & 1); // no hash
if (getHashState() & 2); // empty hash
if (getHashState() & 4); // no empty hash
şöyle yazmak için bir yol var mı: (hash boş değil) eğer {} elseif {} else {// boş bir karma} (hash yoktur)? – bobylapointe
@bobylapointe: Tabii ki, her seferinde sadece bir blok yürütüldüğünden çok fazla fark yaratmıyor. Düzenlememe bak. –