fork(1) download
  1. function getType(data) {
  2. //получили строку вида "[Object Type]"
  3. var type = Object.prototype.toString.call(data);
  4. //оставили только "Type"
  5. type = type.slice(8, -1);
  6. //перевели в нижний регистр первый символ
  7. type = type[0].toLowerCase() + type.slice(1);
  8. /*
  9.   * здесь используем typeOf, потому что
  10.   * toString.call() возвращает
  11.   * для arguments значение не "object",
  12.   а "arguments"
  13.   */
  14. if (typeof data == "object" && type != "array" && data.length >= 0) {
  15. for (var i = 0; i < data.length; i++) {
  16. if (!data.hasOwnProperty(i.toString())) {
  17. return "object;"
  18. }
  19. }
  20. type = "array-like";
  21. }
  22. return type;
  23. }
  24.  
  25. console.log(getType(13));
  26. console.log(getType("I'm a string"));
  27. console.log(getType([1, 2, 3]));
  28. console.log(getType(true));
  29. console.log(getType(undefined));
  30. console.log(getType(function() {var x = 2 + 2; }));
  31. console.log(getType({foo: 1, bar: 2}));
  32.  
  33. function getArguments(x, y) {
  34. return arguments;
  35. }
  36. var args = getArguments(1, 3);
  37.  
  38. console.log(getType(args));
  39.  
Success #stdin #stdout 0.06s 20312KB
stdin
Standard input is empty
stdout
number
string
array
boolean
undefined
function
object
array-like