training-web.ruГлавнаяКатегорииО насКарта сайтаПоискТёмная тема

Категории

Типы данных javascript

Создано: 23 декабря 2015Автор: Егор Астапов1824 просмотраСложность: легкий

Типы данных в javascript должен знать каждый frontend-программист. Вся сложность в том, что нужно очень точно себе представлять в каком формате приходят данные. Очень часто даже опытные программисты не знаю в каком формате пришли данные из базы. Существуют способы проверить типы данных. В яваскрипте есть много неприятных сюрпризов связанных с типом данных. Допустим переменная имеет тип данных NaN или udefined. Тут нужно поэтапно проверять данные. Если функция принимает данные только в одном формате, то вы должны проверять входные параметры. В этом случае без проверки на определённый тип данных она может в некоторых случаях дать сбой. Если функция принимает массив в качестве входного параметра и вы посылаете во входной параметр строку, то будет ошибка. Вы можете долго искать ошибку. Нужно перед вызовом функции проверять переменные, предназначенные для передачи в функцию. Бывают случаи в которых данные приходят строго определённого типа и особые проверки не нужны. Теперь опишу каждый тип данных.

Число. В консоле браузера этот тип данных отображается как "number". Этот тип используется как для целых так и для дробных чисел. Тут нет как в PHP типа данных float. Для проверки на дробное число нужно делать специальную проверку.


var n = 123;
type n;

n = 12.345;
type n;

Строка. Этот тип данных чаще всего встречается. В консоле выглядит как "string". Тут можно использовать двойные кавычки и одинарные.


var str = "Это строка";
typeof str;

Булевый (логический) тип. В консоле он отображается как «boolean».


var story = true;
story = false;
typeof story;

Null. Отдельный тип данных. В консоле он отображается как «null». Имеет только одно значение null. Обратите внимание на нижний пример. Тут не будет null, а будет string.


var f = ''
typeof f;

Объект. В консоле он отображается как «object». Подробно об объектах написано на странице объекты в javascript. Для того чтобы вывести его нужно использовать console.log(). Для того чтобы просмотреть его содержимое нужно использовать console.log(). В себе может размещать как строки так и массивы. Также в нем можно разместить и другие типы данных. Прежде чем передать объект отфильтруйте его. Он не должен содержать в себе NaN и undefined. В яваскрипте нет типа данных массив. У любого массива типом данных будет объект. Если в массив поместите объект или в объект массив, то в этих случаях типом данных будет объект.


var obj = {'a': 1, 'b': 2};
typeof obj;

// в обоих случаях типом данных является объект
var a;
a = {'a': [1,2,3]}
a = [{'e': 1}]
typeof a

Теперь о неприятных сюрпризах.


//(ошибка вычислений)
var r = NaN;
typeof r

//значение не присвоено
r = undefined;
typeof r;

//бесконечность Infinity
alert( 1 / 0 );

Как проверить тип данных? Нам поможет typeof. Если вы работаете в консоле, то не используйте console.log(typeof str). Пишите сразу typeof str.

Предлагаю вам функцию для поиска float-значения в строке. Но тут есть небольшая тонкость! Значение должно встречаться в строке один раз. Регулярное выражение ищет значение согласно условию.


var a = "текст 0.2 текст";

function getFloat(str){
  return +str.replace(/\.(?=.*\.)|[^\d\.-]/g, '');
}

getFloat(a);
// вывод: 0.2

Искал функцию для определения типа флоат. В результате ничего не нашел. Предлагаю вам свою самопальную функцию для определения типа float.


function getTypeFloat(num){
   num = String(num);
  if(num.indexOf('.') != -1){
     return true;
   }else{
     return false;
   }
}

var num = 0.5;
console.log(getTypeFloat(num));
// вывод: true

Комментарии

реклама