Logo    
Деловая газета CitCity.ru CITKIT.ru - все об Open Source Форумы Все публикации Учебный центр Курилка
CitForum    CITForum на CD    Подписка на новости портала Море(!) аналитической информации! :: CITFORUM.RU
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

15.06.2017

Google
WWW CITForum.ru
С Новым годом!
1999 г

 

Что нового в JavaScript версии 1.3 от Netscape.

Степанищев Евгений

Язык JavaScript 1.3 поддерживается Navigator'ом версий 4.06 и 4.5.

  • Поддержка Unicode:

    В строках теперь стало возможным использование любых символов из таблицы Unicode, которые кодируются как шесть ASCII символов: \u и 4 цифры в шестнадцатеричной кодировке, например, \u0041 - латинская буква A из таблицы Unicode. Каждая такая последовательность добавляет только один символ к строке. Функции escape и unescape не подвергались изменениям и не используют Unicode - последовательности.

    Следующий пример выведет на экран символ "копирайт" и строку "Netscape Communicator": alert("\u00A9 Netscape Communicator");

    Следующая таблица содержит список наиболее часто используемых специальных символов и их коды в Unicode:

    UnicodeНаименование 
    \u0009Tab<TAB>
    \u000BVertical Tab<VT>
    \u000CForm Feed<FF>
    \u0020Space<SP>
    \u000ALine Feed<LF>
    \u000DCarriage Return<CR>
    \u000bBack Space<BS>
    \u0009Horizontal Tab<HT>
    \u0022Double Quote"
    \u0027Single Quote`
    \u005CBackslash\

    Вы можете использовать Unicode для отображения символов в различных языках или технических символов. Для отображения символов Unicode у клиента должны быть установлены шрифты Unicode. Некоторые ОС, например Windows 95, поддерживают Unicode лишь частично.

     

  • Новые свойства объекта Global

      NaN

    Синтаксис

    NaN

    В JavaScript 1.2 значение NaN ( Not-a-Number ) было определено только для объекта Number, в версии 1.3 это значение также определено, и для объекта global. NaN никогда не равно ни одному другому числу, включая NaN. Функции, работающие с числами ( например Number constructor, parseFloat и parseInt ) возвращает NaN, если значение параметра не числовое.

      Infinity

    Синтаксис

    Infinity

    Числовое значение величины Infinity - бесконечность. В JavaScript 1.2 Infinity было определено как свойство объекта Number. У объекта Number есть два свойства POSITIVE_INFINITY и NEGATIVE_INFINITY ( для примера, Number.POSITIVE_INFINITY ). В JavaScript 1.3 Infinity определено и для объекта Global. Значение Infinity ( положительная бесконечность ) всегда больше, чем любое другое число, включая себя. Infinity полностью соответствует математической бесконечности. Например любое число, умноженное на Infinity, есть Infinity, любое число, деленное на Infinity, есть 0.

      undifined

    Синтаксис

    undifined

    Переменные, которым не было присвоено значение, имеют значение undifined. Теперь вы можете использовать undifined для проверки того, было ли присвоено переменной значение. Методы и выражения JavaScript также возвращают значение undifined, если используемые переменные не имеют своего значения. undifined - это свойство объекта Global, которое имеет значение undifined.

    Пример:

    var input;
    if(input == undefined){
    document.write("переменной input значение не присвоено");
    }
    

     

  • Новые функции объекта Global ( IsFinite )

      IsFinite

    Синтаксис

    IsFinite(число)

    Вы можете использовать эту функцию, для определения конечности числа. Если аргумент функции NaN положительная или отрицательная бесконечность, функция возвращает false, иначе она возвращает true.

    Пример:

    Проверка числа на конечность

    if(isFinite(Input) == true)
    {
    // Ваш код
    }
    

     

  • Метод toSource

    Синтаксис

    toSource();

    Это новый метод, определенный для всех встроенных объектов. Большинство объектов наследуют этот метод от Object. Метод toSource базируется на методе toString объектов Object и Array.

    toSource возвращает строку, которой вы создавали объект. Вы можете подставлять это значение в функцию eval, сохранять его и др. Для объекта tools метод eval(tools.toSource()) вернет копию объекта tools. Если tools содержит рекурсивные свойства, то строка, которую вернет функция toSource() может выглядеть странно.

    Пример:

    product = {type: "electronic", value: 500};
    myList = ["school", 4, "home", 10];
    myBool = new Boolean; 
    myString = new String("my line");
    myDate = new Date();
    document.write(product.toSource());
    document.write(myList.toSource());
    document.write(myBool.toSource());
    document.write(myString.toSource());
    document.write(myDate.toSource());
    

     

  • Расширение объекта Date

    В предыдущих версиях JavaScript формат даты был зависим от платформы и различных установок. В новой реализации объект Date полностью платформо-независим. Объект Date теперь поддерживает дату и время в формате UTC ( Universal Coordinated Time ). Дата задается как количество миллисекунд, прошедших с 1 января 1970 года. День содержит 86400000 миллисекунд.

    Следующий пример возвращает разницу межде timeA и timeB в миллисекундах:

    timeA = new Date(); 
    alert("подождем какое-то время");
    timeB = new Date(); 
    timeDifference = timeB - timeA;
    

    Для работы с миллисекундами были добавлены методы getMilliseconds() и setMilliseconds(num_ms), getUTCMilliseconds() и setUTCMilliseconds(num_ms). Для устранения проблеммы 2000 года добавлены функции setFullYear, getFullYear, setUTCFullYear и getUTCFullYear. getFullYear возвращает полный год, например 1998, а setFullYear - устанавливает. Методы setYear и getYear оставлены для обратной совместимости.

     

  • Новый конструктор объекта Date

    Конструктор объкта Date был расширен для поддержки миллисекунд, его полный формат:

    Date (yr_num, mo_num, day_num, [, hr_num[, min_ num[, sec_num[, ms_num]]]])
    

     

  • UTC

    UTC - метод объекта Date, теперь также поддерживает миллисекунды.

    Date.UTC(year, month, date, [, hours[, min[, sec[, ms]]]])

    Для поддержки UTC были введены getUTCFullYear(), getUTCMonth(), getUTCDate(), getUTCDay(), getUTCHour(), getUTCMinutes(), getUTCSeconds(), getUTCMilliseconds(), setUTCFullYear(year [, month[, date]]), setUTCMonth(month[, date]), setUTCDate(date), setUTCHour(hours[, min[, sec[,ms]]]), setUTCMinutes(min[, sec[, ms]]), setUTCSeconds(sec [, ms]), setUTCMilliseconds(ms) и toUTCString() ( превращает дату в строку, используя соглашение Universal Coordinates Time ). Рассматривать эти методы более подробно не имеет смысла, их предназначение вполне понятно из названия.

     

  • Изменения в методах объекта Date

    Методы объекта Date в версии 1.3 получили дополнительные параметры:

    setMonth(month[, date])
    setHours(hours[, min[, sec[, ms]]])
    setMinutes(min[, sec[, ms]])
    setSeconds(sec[, ms])
    

    Теперь эти методы по своей форме полностью эквивалентны методам setUTC*.

     

  • Новые методы объекта Function

      call

    Синтаксис

    call(thisArg, arg1, arg2, ...)

    Параметры

    thisArg ( вызываемый объект )

    arg1, arg2, ... ( параметры вызываемого объекта )

    call позволяет вызывать методы одних объектов в контексте других ( вызвавших ) объектов. Это дает возможность задать свое значение объекту this, при вызове функции и, что самое главное, метод call позволяет написать метод один раз и наследовать его для других объектов не переписывая их! (См. также apply ).

    Пример:

    function product(name, value)
    {
    	this.name = name;
    	if(value > 1000) this.value = 999; else this.value = value;
    }
    function prod_dept(name, value, dept)
    {
    	this.dept = dept;
    	product.call(this, name, value);
    }
    prod_dept.prototype = new product();
    cheese = new prod_dept(feta, 5, food);  
    car = new prod_dept(honda, 5000, auto);
    
     

      apply

    Синтаксис

    apply(thisArg, argArray)
    

    Параметры

    thisArg ( вызываемый объект )

    arg1, arg2, ... ( параметры вызываемого объекта )

    apply позволяет применять методы одних объектов в контексте других ( вызывающих ). Так же как и в call объект this может принимать заданное значение ( this будет указывать на текущий, вызвавший объект ). Apply очень напоминает call, отличие лишь в типах параметров ( аргументов ) вызываемого объекта. В методе apply возможно использование любых типов массивов. Например: apply(this, new Array(name, value)). Разрешается так же использовать свойства вызываемого объекта. Можно использовать arguments для передачи всех параметров вызываемому обекту.

    Пример:

    function product(name, value)
    {
    	this.name = name;
    	if(value > 1000) this.value = 999; else
    	this.value = value;
    }
    function prod_dept(name, value, dept)
    {
    	this.dept = dept;
    	product.apply(product, arguments);
    }
    prod_dept.prototype = new product();
    cheese = new prod_dept(feta, 5, food);
    car = new prod_dept(honda, 5000, auto);
    

     

  • Операторы === и !==

    Операторы === и !== проверяют на соответствие ( и не соответствие ) операнды одинаковых типов ( т.е. например оба операнда должны быть типа String ). При сравнении с помощью этих операторов не происходит преобразования типов. Их использование необходимо, когда нужно убедиться, что оба операнда имеют одинаковый тип и одинаковые ( или разные ) значения.

    Пример:

    10 === '10'

    вернет false, тогда как

    10 == '10'

    вернет true.

     

  • Изменения в операторах == и !=

    Если операнды разного типа просходит преобразование. Как результат возвращается значение типа Boolean. Если типы операндов одинаковы, то операторы == и != эквивалентны === и !==. Значения null и undifined считаются одинаковыми, NaN считается не равным ни одному значению, включая NaN.

    Пример:

    10=='10'

    возвращает true

     

  • Изменения в объекте Array

    Свойство length

    Длина массива ( свойство length ) теперь задается беззнаковым 32-битным целым. Значение свойства length может лежать в пределах от 0 до 232-1.

    Конструктор

    В JavaScript 1.3 при использовании конструктора с единичным параметром ( new Array(len) ) конструктор проверяет тип параметра. Если это число конструктор конвертирует его в 32-битное беззнаковое целое и создает массив со свойством length ( размер массива ), установленное в integer. Начальные значения элементов массива - undifined.

    Метод push

    В JavaScript 1.2 метод push возвращал последний элемент, добавленный к массиву. В версии 1.3 метод возвращает новую длину массива.

    Метод splice

    В JavaScript 1.2 метод splice возвращал удаленный элемент, если удалялся только один элемент ( параметр howMany равен 1 ). В JavaScript 1.3 splice всегда возвращает массив, содержащий удаленные элементы. Если удаляется только один элемент, то splice вернет массив, содержащий один единственный элемент.

     

  • Метод replace объекта String

    Синтаксис

    replace(regexp, newSubStr)
    replace(regexp, function)

    В JavaScript 1.3 в качестве второго параметра можно использовать функцию. В этом случае заданная функция будет вызвана после метода match и ее результат ( строка ) заменит найденную подстроку. Есть возможность передать найденную подстроку функции. Первый параметр функции содержит найденную подстроку, остальные - подсовпадения в найденной строке. Надеюсь следующий пример разъяснит смысл вышесказанного:

    "XXzzzz".replace(/(X*)(z*)/, function (str, p1, p2) {return str +" - " + p1 +" , " + p2;} )

    вернет XX.zzzz - XX , zzzz

     

  • Объект Boolean

    В JavaScript 1.2 значение false объекта Boolean трактовалось как ложь в логических выражениях. Если Boolean использовался в операторе if ( if (выражение) ), JavaScript 1.2 использовал значение объекта Boolean. В JavaScript 1.3 все объекты в логических выражениях трактуются, как истина, включая объект Boolean, даже если он имеет значение false.

    Пример:

    x = new Boolean(false);
    if(x) // значение этого выражения - истина
    {
    	// Выполнение кода
    }
    

     

  • toString

    В JavaScript 1.3 метод toString объекта Object возвращает [object type], где type - имя объекта или имя конструктора объекта. Метод toString объекта Array вернет строку, содержащую значения всех элементов, разделенных запятыми.

    Пример:

    var SeaLion=new Image();
    alert(SeaLion.toString());	// выдаст [object Image]
    

     

  • eval

    Функцию eval можно вызывать не напрямую. Для примера можно использовать следующий код:

    var x = 2;var y = 4;
    var myEval = eval;
    myEval(x + y);
    eval(x + y);
    

     

  • Использование операции присваивания в логических выражениях

    Ранние версии JavaScript конвертировали операции присваивания в логических выражениях в операции сравнения, другими словами if (x=y) превращалось в if (x==y). В Navigator 4.06 и выше возможно использование присваивания, если воспользоваться следующей конструкцией: if ( (x=y) ).

    Web-программист казанского центра интернет Степанищев Евгений

     

Подписка на новости IT-портала CITForum.ru
(библиотека, CITKIT.ru, CitCity)

Новые публикации:

24 декабря

CITKIT.ru:

  • Новогодние поздравления
  • Сергей Кузнецов. Цикл Операционные системы: Ностальгия по будущему:

  • Алексей Федорчук. OpenSolaris 2008.11 Release

  • Сергей Голубев:

  • Евгений Чайкин aka StraNNik (Блогометки):

    17 декабря

  • С.Д.Кузнецов. Базы данных. Вводный курс

    10 декабря

    CITKIT.ru:

  • OpenSolaris 2008.11 Release

  • Альтернативные ОС: две грустные истории (С.Кузнецов)
  • Nokia N810 — доведение до ума
  • CitCity:

  • Платформа 2009: заоблачные перспективы Microsoft

    4 декабря

  • Лекция С.Д.Кузнецова Понятие модели данных. Обзор разновидностей моделей данных

    CITKIT.ru:

  • OpenSolaris 2008.11 Release. Первые впечатления

  • Linux vs FreeBSD: продолжим "Священные войны"?

  • Nokia N810 as is

  • Индульгенция для FOSS

  • Друзья СПО'2008

    26 ноября

  • Нечеткое сравнение коллекций: семантический и алгоритмический аспекты

    CitCity:

    CITKIT.ru:

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • 19 ноября

  • Проблемы экономики производства крупных программных продуктов

  • Язык модификации данных формата XML функциональными методами

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Заметки к книге:

  • FreeBSD: монтирование сменных устройств и механизм HAL
  • Текстовый редактор ee

    12 ноября

  • Правило пяти минут двадцать лет спустя, и как флэш-память изменяет правила (Гоц Грейф, перевод: Сергей Кузнецов)

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:
  • OSS в России: взгляд правоведа (В.Житомирский)

  • Новая статья из цикла С.Голубева "Железный марш":

    29 октября

  • О некоторых задачах обратной инженерии

  • Веб-сервисы и Ruby

  • Тестирование web-приложений с помощью Ruby

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

  • PuppyRus Linux - беседа с разработчиком (С.Голубев)

  • Сергей Кузнецов. Заметка не про Linux

    22 октября

  • Обзор методов описания встраиваемой аппаратуры и построения инструментария кросс-разработки

    CITKIT.ru:

  • Сергей Кузнецов. Почему я равнодушен к Linux

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • Что надо иметь
    3. Базовые познания

    CitCity:

  • Управление IT-инфраструктурой на основе продуктов Microsoft

    15 октября

  • Методы бикластеризации для анализа интернет-данных

    CitCity:

  • Разъемы на ноутбуках: что они дают и зачем их так много?
  • AMD Puma и Intel Centrino 2: кто лучше?

    CITKIT.ru:

  • Новый цикл статей С.Голубева
    Железный марш:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    8 октября

  • Автоматизация тестирования web-приложений, основанных на скриптовых языках
  • Опыт применения технологии Azov для тестирования библиотеки Qt3

    Обзоры журнала Computer:

  • SOA с гарантией качества
  • Пикоджоуль ватт бережет
  • ICT и всемирное развитие

    CitCity:

  • Пиррова победа корпорации Microsoft

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Статья из архива:

  • Я живу в FreeBSD (Вадим Колонцов)

    Новые Блогометки:

  • Перекройка шаблона Blogger или N шагов к настоящему
  • Blogger. Comment style
  • Screenie или глянцевый снимок экрана

    2 октября

    CITKIT.ru:

  • Сага о FreeBSD (А. Федорчук)

    Zenwalk: пакет недели

  • Банинг — интеллектуальное развлечение (С.Голубев)

    CitCity:

    25 сентября

  • Клермонтский отчет об исследованиях в области баз данных

    CITKIT.ru:

  • Пользователям просьба не беспокоиться... (В.Попов)

  • Снова про ZFS: диск хорошо, а два лучше
  • Командная оболочка tcsh (А.Федорчук)

    Zenwalk: пакет недели

    17 сентября

  • T2C: технология автоматизированной разработки тестов базовой функциональности программных интерфейсов
  • Технология Azov автоматизации массового создания тестов работоспособности

    CITKIT.ru:

  • FreeBSD: ZFS vs UFS, и обе-две — против всех (А.Федорчук)

    Zenwalk: пакет недели

  • Дачнет — практика без теории (С.Голубев)

    10 сентября

  • За чем следить и чем управлять при работе приложений с Oracle
  • Планировщик заданий в Oracle
    (В.Пржиялковский)

    CITKIT.ru:

  • Microsoft: ответный "боян" (С.Голубев)

  • Причуды симбиоза, или снова "сделай сам" (В.Попов)

  • Файловые системы современного Linux'а: последнее тестирование
  • Zsh. Введение и обзор возможностей
    (А.Федорчук)

    Описания пакетов Zenwalk: Zsh, Thunar, Thunar-bulk-rename, Xfce4-places-plugin, Xfce4-fsguard-plugin

    Блогометки:

  • Google Chrome
  • Лончер для ASUS Eee PC 701

    3 сентября

    CITKIT.ru:

  • Заметки о ядре (А.Федорчук):

    Добавлены описания пакетов Zenwalk: Galculator, Screenshot, Gnumeric, Pidgin

    В дискуссинном клубе:

  • И еще о Википедии и Google Knol

  • Лекция для начинающего линуксоида (С.Голубев)

    26 августа

  • Транзакционная память (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Открыт новый проект Zenwalk: пакет недели

  • Статья Текстовые процессоры и их быстродействие: конец еще одной легенды?

    21 августа

    CITKIT.ru:

  • Почему школам следует использовать только свободные программы (Ричард Столлман)
  • Беседа Сергея Голубева с учителем В.В.Михайловым

  • Википедия или Гуглезнание? Приглашение к обсуждению (Алексей Федорчук)
  • Народная энциклопедия от Google (StraNNik)

  • Обзор Mandriva 2009.0 Beta 1 Thornicrofti
  • Новичок в Линукс: Оптимизируем Mandriva 2008.1

  • Книга Zenwalk. Приобщение к Linux:

    13 августа

    CitCity:

  • Мирный Atom на службе человеку. Обзор платы Intel D945GCLF с интегрированным процессором
  • Обзор процессоров Intel Atom 230 на ядре Diamondville

  • iPhone - год спустя. Скоро и в России?

    CITKIT.ru:

  • Интермедия 3.4. GRUB: установка и настройка (из книги Zenwalk. Приобщение к Linux)

    6 августа

  • СУБД с хранением данных по столбцами и по строкам: насколько они отличаются в действительности? (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Интермедия 2.2. Что неплохо знать для начала (из книги Zenwalk. Приобщение к Linux)

  • И снова про шрифты в Иксах (А.Федорчук)

  • 20 самых быстрых и простых оконных менеджеров для Linux

  • Дело о трех миллиардах (С.Голубев)

    30 июля

  • OLTP в Зазеркалье (Пересказ: С. Кузнецов)

    CitCity:

  • Будущее BI в облаках?
  • Тиражные приложения и заказная разработка. Преимущества для заказчика
  • Дискуссия со сторонниками заказной разработки

    CITKIT.ru:

  • Новые главы книги Zenwalk. Приобщение к Linux:
  • Глава 8. Пакеты: средства установки, системы управления, системы построения
  • Глава 9. Zenwalk: репозитории, пакеты, методы установки

    23 июля

    CITKIT.ru:

  • Все против всех. 64 vs 32, Intel vs AMD, tmpfs vs ext3
  • Две головы от Intel

  • Zenwalk: обзор штатных приложений (глава из книги "Zenwalk. Приобщение к Linux")

  • Нормально, Григорий...

    16 июля

    Обзоры журнала Computer:

  • Перспективы и проблемы программной инженерии в XXI веке
  • Большие хлопоты с большими объемами данных
  • Перспективы наноэлектроники

    CITKIT.ru:

  • Интермедия о лицензиях (А.Федорчук. "Zenwalk. Приобщение к Linux")

  • Есть ли будущее у KDE?

  • Linux в школе: альтернативный вариант в задачах

  • Шифр (приключения агента Никодима)

    10 июля

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия вступительная. Linux или GNU/Linux? Как вас теперь называть?
  • Глава 5. Среда Xfce
  • Глава 6. Xfce: приложения и плагины

  • ZUR (Zenwalk User Repository) FAQ

    2 июля

  • Персистентность данных в объектно-ориентированных приложениях (С. Кузнецов)

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия 1.2. Дорога к Zenwalk'у. Период бури и натиска
  • Интермедия 3.3. Немного о Linux'е и "железе"
  • Глава 4. Настройка: инструментами и руками
  • Интермедия 4.1. Zenpanel и конфиги: поиски корреляции

  • Интервью с Жан-Филиппом Гийоменом, создателем дистрибутива Zenwalk

  • Linux в школе: первые итоги (С. Голубев)

    25 июня

    CITKIT.ru:

  • Zenwalk. Приобщение к Linux (А. Федорчук)

  • Логика и риторика (С.Голубев)

  • Технология Tru64 AdvFS

  • Ханс Райзер предлагает отвести полицейских к телу Нины

    18 июня

  • Проекты по управлению данными в Google (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • ОС и поддержка "железа": мифы и реальность (А. Федорчук)

  • Linux в школе: другие дистрибутивы

  • Пинок (С. Голубев)

    4 июня

  • Ландшафт области управления данными: аналитический обзор (С. Кузнецов)

    CITKIT.ru:

  • Linux в школе: слово заинтересованным лицам

  • SlackBuild: пакеты своими руками

  • Linux от компании Novell. Установка и обзор openSUSE Linux

    Все публикации >>>




  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей Пресс-релизы — pr@citcity.ru
    Послать комментарий
    Информация для авторов
    Rambler's Top100 This Web server launched on February 24, 1997
    Copyright © 1997-2017 CIT, © 2001-2017 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...