Проверка дали дадена променлива е низ в JavaScript
Как мога да определя дали дадена променлива е низ или нещо друго в JavaScript?
1539
3
Как мога да определя дали дадена променлива е низ или нещо друго в JavaScript?
Ето какво работи за мен:
Можете да използвате оператора
typeof
:Пример от тази уебстраница. (Примерът обаче е леко променен).
Това няма да работи както се очаква в случай на низове, създадени с
new String()
, но това се използва рядко и се препоръчва да не се[1][2]. Вижте другите отговори за това как да се справите с тях, ако желаете.Най-добър начин:
Всеки от тези обекти е конструиран чрез съответната функция на класа, като "new Object()" и т.н.
Също така, Duck-Typing: Ако изглежда като патица, ходи като патица и мирише като патица - трябва да е масив" В смисъл, проверете свойствата му.
Надявам се това да помогне.
Edit; 12/05/2016
Не забравяйте, че винаги можете да използвате и комбинации от подходи. Ето един пример за използване на инлайн карта на действията с typeof:
Ето един по-'реален пример за използване на inline-карти:
Тази функция ще използва [ custom ] "type-casting" -- по-скоро "type-/-value-mapping" -- за да разбере дали дадена променлива действително "съществува". Сега вече можете да разделите неприятния косъм между
null
&0
!В много случаи не ви интересува дори нейният тип. Друг начин за заобикаляне на типизирането е комбинирането на Duck-Type множества:
Както прототипът
Number.prototype
, така и прототипътString.prototype
имат метод.toString()
. Вие просто сте се уверили, че символът на числото, еквивалентен на низ, е един и същ, и след това сте се уверили, че сте го предали във функциятаhttp
катоNumber
. С други думи, ние дори не се интересувахме какъв е типът му.Надявам се, че това ви дава повече възможности за работа :)