Лаб 2 (1075651), страница 2

Файл №1075651 Лаб 2 (Лабораторный практикум) 2 страницаЛаб 2 (1075651) страница 22017-12-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

Однако, если на первом месте в строкебудет находиться не цифра, то возвращенный ими результат будет NaN (нечисло).Функция в форме parseInt(str, base) позволяет разобрать числа в указанной baseсистеме счисления.Некоторые примеры из [1]:parseInt("3 слепых мышки"); // Вернет 3parseFloat("3.14 метров"); // Вернет 3.14parseInt("12.34"); // Вернет 12parseInt("0xFF"); // Вернет 255parseInt("11", 2); // Вернет 3 (1*2 + 1)parseInt("ff", 16); // Вернет 255 (15*16 + 15)parseInt("zz", 36); // Вернет 1295 (35*36 + 35)parseInt("077", 8); // Вернет 63 (7*8 + 7)parseInt("077", 10); // Вернет 77 (7*10 + 7)Логические операцииЛогический тип имеет значения true или false аналогично boolean в C++.Поддерживается почти аналогичный набор логических операций.Пример:if (a == 4)b = b + 1;elsea = a + 1;Имеется дополнительный оператор тождественного сравнения = = =(троекратное =), который отличается от == (двойное =) тем, что операндыдолжны совпадать по типу, а неявное преобразование к ним не будетприменено:if (a === "4") // только строки!b = b + 1;if (a === 0) // только число 0b = b + 1;if (a == 0) // число 0 или пустая строкаb = b + 1;.Имеющиеся операторы сравнения представлены в таблице 1.

Дляопределённости примем, что предварительно выполнено присвоение x=5.Таблица 1 Операторы сравнения JavascriptОператор ОписаниеПример (x=5)Результат8Оператор Описание==РавенствоПример (x=5)x==8x==5===Равенство с учетом типаx==="5"x===5!=НеравенствоНеравенство с учетом типаx!=8БольшеМеньшеБольше или равноМеньше или равноx>8!==><>=<=x!=="5"x!==5x<8x>=8x<=8РезультатfalsetruefalsetruetruetruefalsefalsetruefalsetrueПоддерживаются следующие выражения, позволяющие организоватьветвление процесса:if (condition) {…} else {…}variablename=(condition)?value1:value2switch(n){case 1:execute code block 1break;case 2:execute code block 2break;default:code to be executed if n is different from case 1 and 2}ЦиклыВыражения для формирования циклов в Javascript аналогичны C/C++ заисключением конструкции for (item in list){…}.for (i=0; i<5; i++) {x=x + "The number is " + i + "<br />";}while (i<5) {x=x + "The number is " + i + "<br />";i++;}do {x=x + "The number is " + i + "<br />";i++;} while (i<5);var person={fname:"John",lname:"Doe",age:25};for (x in person) { txt=txt + person[x]; }9ФункцииФункции в Javascript задаются в форме:function sum (a,b) // декларируем функцию sum с двумя аргументами{return a+b;}Обратите внимание на то, что возвращаемый результат не декларируетсяявно.

Передаваемые параметры a, b не имеют типа, однако попытка передатьзначения неправильного типа приведут к ошибке при выполнении кода!Существует возможность определить функциональный литерал вследующей форме:var sum = function sum (a,b) { return a+b; };В дальнейшем использование sum будет выглядеть аналогично явноопределенной функции, однако реальную функцию в sum можно в любоймомент переопределить.ОбъектыОбъект – это коллекция именованных значений, которые обычноназывают свойствами (properties) объекта. Важно то, что в Javascript свойстваобъекта могут быть добавлены при выполнении.Пример:var point = new Object(); // создаём пустой объект !!!point.x = 2.3;// присоединяем свойство xpoint.y = 1.2;// присоединяем свойство yОбращение к свойствам может производиться либо в форме:point.xлибо в форме ассоциативного массива:point["x"]Объектные литералы позволяют задавать значения объектов в коде.Объектные литералы могут быть простыми:var point = { x:2.3, y:1.2 };или вложенными:var rectangle = {upperLeft: { x: 2, y: 2 },lowerRight: { x: 4, y: 4 }};Любой объект может быть преобразован в строку вызовом методаtoString().МассивыМассивы, как и объекты, являются коллекциями значений, но важноеотличие состоит в том, что каждый из элементов имеет номер.

Нумерацияэлементов в Javascript начинается с нуля, как и в C. Объект-массив создаетсяпри помощи конструктора Array().10Пример массива, элементы которого произвольны:var a = new Array();a[0] = 1.2;a[1] = "JavaScript";a[2] = true;a[3] = { x:1, y:3 };Инициализация массива при создании:var a = new Array(1.2, "JavaScript", true, { x:1, y:3 });Создание массива на указанное количество элементов:var a = new Array(10);Литерал массива - это список разделенных запятыми значений,заключенных в квадратные скобки. Допустима инициализация массива сразнородными объектами:var a = [1.2, "JavaScript", true, { x:1, y:3 }];Инициализация двумерного массива:var matrix = [[1,2,3], [4,5,6], [7,8,9]];Инициализация массива динамически вычисленными значениями:var base = 1024;var table = [base, base+1, base+2, base+3];Переменные и их области видимостиПеременные в Javascript не имеют типа! Тип имеет только значениепеременной, поэтому переменная, которая не была инициализированаконкретным значением, не может иметь тип.

Более того, одна и та жепеременная может принимать значения различных типов в разные моментывремени, однако всегда можно проверить, была ли переменная вообщеинициализирована.Javascript позволяет определять глобальные и локальные переменные.Отсутствует блочная видимость в том виде, как это реализовано в языках C иC++.Пример:function test(o) {var i = 0; // i определена во всей функцииif (typeof o == "object") {var j = 0; // j определена везде, а не только в блокеfor(var k = 0; k < 10; k++) { // k определена везде, не только в циклеdocument.write(k);}document.write(k); // k все еще определена: печатается 10}document.write(j); // j определена, но может быть не инициализирована}11Основной принцип распространения видимости переменных следующий:переменные доступны в текущей функции и во всех вложенных функциях (тоесть определённых в коде этой функции).

Глобальные переменные, т.е.переменные, определенные вне функций, доступны везде.var x = function(){var i;mul = function(b) { return i*b; }for(fact = i = 1; i < 10; i++) {fact = mul(fact);document.write(i + "! = " + fact + "<br />");}}Локальными переменными являются аргументы функций, а также переменные,не найденные в контексте выше, либо объявленные со служебным словом var.Пример:var scope = "глобальная";function f() {alert(scope); // Показывает "глобальная".scope = "локальная"; // Переменная глобальная.alert(scope); // Показывает "локальная"}f();alert(scope); // Показывает "локальная"Укажем внутри функции декларацию var scope.var scope = "глобальная";function f() {alert(scope); // Показывает "undefined", а не "глобальная".var scope = "локальная"; // Переменная инициализируется здесь,// но определена она везде в функции.alert(scope); // Показывает "локальная"}f();alert(scope); // Показывает "глобальная".Переменные могут не декларироваться, однако для того, чтобы объявитьглобальную переменную необходимо либо объявить её со служебным словомvar, либо присвоить значение.Пример, который вызовет ошибку:function f1() {scope = "123"; // Переменная инициализируется здесьalert(scope);}function f2() {alert(scope); // Переменная нигде не объявлена}Добавим переменную scope явноvar scope;function f1() {scope = "123"; // Переменная инициализируется здесьalert(scope);}12function f2() {alert(scope);}f2();// Показывает "undefined"f1();// Показывает "123"f2();// Показывает "123"Зададим переменной scope тип строки:var scope = "";function f1() {scope = "123"; // Переменная инициализируется здесьalert(scope);}function f2() {alert(scope);}f2();// Показывает "" (пустая строка)f1();// Показывает "123"f2();// Показывает "123"Основные операторы и инструкцииЯзык Javascript имеет сходство с языками С++ и Java, поэтому в видуограниченного объема изложения, подробно на них останавливаться не будем.Тем не менее, их следует изучить в главах 5 и 6 книги [1].Объекты и классыЯзык Javascript является объектно-ориентированным языком, но не имеетклассов в понимании классов С++ или Java.Любая переменная может получить значение-объект.

Если ни однапеременная не хранит ссылку на этот объект, он будет удалён. Каждый изобъектов конструируется самостоятельно. При этом объекту могут бытьдинамически назначены свойства и методы.Воспользуемся примерами из [1].// Определяем конструктор.// Обратите внимание, как инициализируется объект с помощью "this".function Rectangle(w, h) {this.width = w;this.height = h;}// Вызываем конструкторы для создания двух объектов Rectangle.// И проинициализируем оба новых объекта.var rect1 = new Rectangle(2, 4); // rect1 = { width:2, height:4 };var rect2 = new Rectangle(8.5, 11); // rect2 = { width:8.5, height:11 };В роли конструктора объекта выступает функция Rectangle.

При этом длядобавления свойств объекта использован указатель this.Добавить метод к конкретному объекту можно следующим образом:r.area = function() { return this.width * this.height; }// Теперь рассчитать площадь, вызвав метод объектаvar a = r.area();13Добавить метод так, чтобы объект получал его на этапе вызова конструктораможно следующим образом:function Rectangle(w, h) {this.width = w;this.height = h;this.area = function( ) { return this.width * this.height; }}Указанный метод не является оптимальным.

Характеристики

Тип файла
PDF-файл
Размер
958,27 Kb
Тип материала
Высшее учебное заведение

Список файлов лабораторной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6618
Авторов
на СтудИзбе
295
Средний доход
с одного платного файла
Обучение Подробнее