Last active
October 24, 2015 16:45
-
-
Save rtivital/c8188413abf393ac1522 to your computer and use it in GitHub Desktop.
Проверка типов
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Проверка числа | |
var isNumber = function(num) { | |
// Функция parseInt вовращает число или NaN | |
// NaN будет возвращено, когда невозможно привести num к числу, | |
// например, parseInt('j23'), parseInt({}), parseInt(['a', 2, 3]) | |
// число вернется, когда parseInt сможет преобразовать num к числу, | |
// например, parseInt('12string'), parseInt(12), parseInt([12, 13, 14]) | |
// всё это вернет число 12 | |
if (isNaN(parseInt(num))) { | |
return false; | |
} | |
return typeof num === 'number'; | |
}; | |
// Проверка существования непустой строки | |
var isString = function(str) { | |
if (typeof str === 'string') { | |
if (str.length > 0) { | |
return true; | |
} | |
} | |
return false; | |
}; | |
// Проверка существования непустой строки без whitespace символов: | |
// пробел, tab (/t), перенос строки (/n) | |
var isEmptyString = function(str) { | |
if (typeof str === 'string') { | |
if (str.trim().length > 0) { | |
return false; | |
} | |
} | |
return true; | |
}; | |
// Проверка объекта | |
var isObject = function(obj) { | |
// возвращать typeof 'object' неправильно, | |
// так как typeof null тоже 'object' | |
return typeof obj === 'object' && obj !== null; | |
}; | |
// Проверка массива | |
var isArray = function(arr) { | |
// метод для определения массива был добавлен в ES5 | |
return Array.isArray(arr); | |
}; | |
// Проверка непустого массива | |
var isEmptyArray = function(arr) { | |
// проверить с помощью arr.length не получится, | |
// так как длину массива можно установить arr.length = 4 | |
// или установить отдельный элемент arr[4] = 'item' | |
// в этом случае длина массива будет равной 5 | |
// а сам массив будет содержать [undefined × 4, "item"] | |
// нужно использовать метод join для преобразования массива в строку | |
// и работать уже со строкой, например, с помощью функций isString | |
return !isString(arr.join('')); | |
// или isEmptyString в зависиости от целей | |
return isEmptyString(arr.join('')); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment