Directory JavaScript typeof
или, често, излезе и просто:
Послепис Просто използвайте, ако (VAR) е невъзможно, тъй като достъпът до неопределено променлива ще предизвика грешка. Но призив към липсващите качества на глобалната прозорец обект само извежда неопределена
В допълнение, typeof оператор се използва за полиморфизъм. Например, следната функция получава DOM възел или възел ID, и в двата случая правилно крие възел.
Мисля, че не си струва да се пише за. Ето един пример, където този метод не работи:
Никой в правото си ум не ще отменят неопределено в нещо друго.
Мисля, че здравият разум не е необходимо да се разчита, следователно, по-надежден тест е да се провери при използването typeof.
Разбира се, на противника. В края на краищата, в повечето случаи, използвам библиотеки на трети страни.
ако (window.var! == неопределено)
Как тогава си обяснявате лошото. Докато другаде Намерени неразбираем.
Операторът на typeof връща низ, съдържащ информация за вида на операнд. Той има следния вид:
typeof ИЗРАЗ или typeof (ИЗРАЗ)
където ИЗРАЗ - всеки израз. Върнатата стойност може да бъде един от шестте редове: "номер" (брой), "низ" (низ), "булева" (логическа стойност), "обект" (обекта), "функция" (функция) или "неопределена" (неопределен стойност). примери:
размер Var = 1;
Var форма = "кръг";
Var днес = нови Дата ();
typeof (размер); // връща "номер"
typeof форма; // връща "низ"
typeof днес; // връща "обект"
ако (typeof (VAR) == "неопределен")
ако (window.var! == неопределено)
или, често, излезе и просто:
Като цяло, според семантично натоварване, проверка на съществуването на една променлива в променлива обекта, или че тази променлива да неопределено, което може да се извърши или чрез:
или (в глобалната област) от оператор в:
Отново, консултирайте се с typeof ви позволява да проверите наличността и променлива във вложено контекст (например, функции), което не може да се направи с или window.var window.var! == неопределени. Освен това, в предпоследния събитието, един предмет може да бъде настроен да лъжа. тя напълно променя смисъла на проверка.
Ето защо, typeof това в момента се използва в съвременните ES.
Yt се получава както беше обявено преди този тест. Защото няма грешка. Въпреки, че аз не бих го направят, защото не е ясно и може да доведе до запаси.
Освен това, тази функция на езика е неприятни капани. Например, ако в началото на обработките се опитате да използвате глобална променлива
и след това в долната част на същата тази процедура, да декларира, локална променлива
Получаваме, че пет предварително сте назначен на локална променлива, а не на световната един. Global същата променлива в същото време тя става недостъпна в рамките на цялата процедура. Тъй като, например:
Това е в действителност:
по принцип можете да декларират всички локални променливи в долната част, ако е необходимо, като в същото време те станат достъпни, така че ако ги декларират в горната част. Това не във всеки случай трябва да се разглежда като препоръка. Напротив, бих препоръчал, че такъв се избягва.
И накрая комплекс пример:
В този случай, използвайте typeof не помага, ще даде същата грешка, се дължи на факта, че довереник не е определена.
Ние виждаме това:
Смисълът на този код е, че трябва да се провери дали има главна (родител обект), а след това сложете приложените свойства.
Всъщност, всичко това е необходимо да се гарантира, че нашият код не се върна грешка. Този код и избягва грешката.
Ако се установи собствеността, а след това всичко ще бъде наред, например: