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 не помага, ще даде същата грешка, се дължи на факта, че довереник не е определена.

Ние виждаме това:

Смисълът на този код е, че трябва да се провери дали има главна (родител обект), а след това сложете приложените свойства.

Всъщност, всичко това е необходимо да се гарантира, че нашият код не се върна грешка. Този код и избягва грешката.

Ако се установи собствеността, а след това всичко ще бъде наред, например: