голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Типы данных javascript

Типы данных в 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
просмотры: 1457, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-12-23 17:10:41
проголосовать:

Комментарии:






поиск
реклама
банеры
Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей