| [Ликбез] |
| Форма входа |
| Меню сайта |
| Categories | ||
|
| Главная » Статьи » Web-программирование » Java Script |
В этой статье попробую описать необычные «повадки» Операции суммирования и вычитания В суммирование однотипных простых значений (типа строка, число) нет ничего особенного, и все они проводятся согласно логическим правилам исходя из типа. Многие из вас, наверное, знают про маленькую особенность, которою можно наблюдать при суммировании строки и числа. Такие моменты обусловлены правилом неявного преобразования типов. Code var p1 = "3" + 1; // p1 = "31" // (строка)Как оказывается, в результате сложения строки и числа, вы получаете строку, а вот если вы будете вычитать из строки число или из строки строку, то получите опять- таки число. СравненияСравнение имеет тоже свою магию. И, порой, можно получить просто неожиданный результат. Code var n = ''=='0'; // falseЕще один из интересных моментов связан со сравнением массивов. Code var n = 2==[2]; // результат trueЕще более удивительным может показаться следующие сравнение Code var n1 = 2==[[[2]]]; // результат trueНу и что бы окончательно убедится, что сравнение массивов обладает истинной магией, посмотрите на вот этот пример. Code var a = { "item" : 1 };Особенность работы с типом undefined Этот тип состоит из единственного значения undefined. Code var i = {};Особенность заключается в том, что если данной переменной undefined присвоить другое значение, то результат при сравнении не заданного свойства с этим значением будет давать значение false; Code undefined = 1;Для избежания ошибок в коде лучше использовать сравнение типов. Code var n2 = typeof i.j=="undefined"; // результат всегда trueПреобразования строки в числоФункция parseInt преобразует строку в число по указанному основанию. Code var n1 = parseInt('06'); // результат 6Будьте бдительны при использовании этого метода :). Преобразование в логический типЧто бы преобразовать значение в логический тип, вам необходимо сделать следующим образом: Code var n = Boolean(value);Но есть и другой способ, для этого вам необходимо воспользоваться двойным логическим отрицанием. Code var n1 = !!0; // результат falseОперации преобразования будут проведена согласно правилам преобразование к логическому типу. Округление чисел Для округления в JavaScript вы можете воспользоваться функциями Math.floor(x) или parseInt(x,10). Code var n = Math.PI; // результат 3.141592653589793Очень необычный способ, но результат возвращает корректно :). Тип DateДата в JavaScript измеряется в миллисекундах, начиная от полуночи 01 января 1970 года GMT+0. Для получения даты вам нужно создать объект типа Date и передать туда необходимые параметры даты. Code var currentDate = new Date(); //Текущая датаЕсть интересный момент при работе с датой, связан с тем, что вы можете указывать смещение по годам, месяцам, дням, минутам, секундам. Code var futureDate = new Date(2010,10,10+1024); // 30.08.2013Особенность работы try, catch, finallyКак мы все прекрасно знаем, для обработки исключений в javascript нам необходимо использовать конструкцию try...[catch]...[finally]. Казалось, какие особенности может иметь такая конструкция. Рассмотрев в примере от Neil Fraser, мы можем убедится, что все же тут имеется некоторые особенности. Code function f() {
Как оказывается данный метод вернет значение "false". Обращение к свойствам Javascript имеет два способа используя которые можно получить значение свойства. Code a['title'] = "JavaScript array";Именно из-за этой особенности можно ответить на вопрос "Как узнать все свойства объекта?". Code var obj = { param1 : JavaScript string", param2 : "Javascript date" };Аргументы функцииПри вызове функции вы можете не передавать значение параметров. Но вот если вы передали параметры, а в функции не определены входящие параметры, то вы можете воспользоваться переменной arguments для получения доступа ко всей коллекции полученным параметрам. Code function wow(param1){Источник: Аргументы,функции,Округление,Тип,Date,try, catch, finally,JavaScript,ECMAScript,Операции,Сравнение,undefined,Особенность | |
| Всего комментариев: 0 | |