— Привіт, Аміго!

— Привіт, Білаабо!

— Радий тебе бачити. Сьогодні у нас невелике, але дуже пізнавальне заняття. Сьогодні я розповім тобі про мову JavaScript. >JavaScript - 1

— Нова мова? Як цікаво…

— JavaScript зараз популярний завдяки інтернету. Справа в тому, що це єдина мова, яку вміють виконувати всі браузери. Якщо ти хочеш додати анімацію або деяку логіку до своєї інтернет-сторінки, то ти можеш зробити це за допомогою JavaScript.

— А чи правда, що JavaScript – найпопулярніша мова?

— Так, але тут правильніше було б сказати, що він найпопулярніший «друга мова». Програмісти C++, Java, C#, PHP змушені писати невеликі скрипти на JavaScript, щоб оживити свої інтернет-сторінки. У той же час людей, які пишуть тільки на JavaScript набагато менше.

— А чому в нього така назва JavaScript? Звучить майже як Java.

— Насправді спочатку він називався LiveScript, але коли Java почала набирати популярності, його перейменували на JavaScript.

Java та JavaScript — це дві абсолютно різні мови, не варто їх плутати.

JavaScript, на відміну від Java, не має класів, не підтримує статичну типізацію, багатопоточність та багато чого ще. І якщо Java – це скоріше великий набір будівельних інструментів, то JavaScript – це швейцарський ніж. JavaScript створений для вирішення маленьких завдань, а Java – для великих і дуже великих.

Ось тобі кілька фактів про JavaScript:

Факт перший – у JavaScript є функції, але немає класів

Просто пишеш логіку програми в кількох функціях і все. Приклад:

JavaScript
function min(a, b ) { return a }
Java
public static int min(int a, int b) { return a }

Нові функції оголошуються за допомогою конструкції «function+ім'я».

Ще приклад:

JavaScript
function min(a, b) { return < span class="green_text">a<b ? a: b; } function main() { var s = 3; var t = 5; var min = min(s, t); }
Java
public static int min(int < span class="green_text">a, int b) { return a<b ? a: b; } public static void main() { int s = 3; int t = 5; int min = min(s,t); }

Факт другий – у JavaScript є змінні, але у них немає типів

JavaScript – це мова з динамічною типізацією. Це означає, що з змінних, за фактом, немає типів. Будь-якій змінній можна надати значення будь-якого типу (у значень типи є). Приклад:

JavaScript
function main() { < span class="text-red">var s = "Bender"; var k = 1; var n = s.length; }
Java
public static void main() { < span class="text-red">String s ="Bender"; int k = 1; int n = s.length(); }

Але динамічна типізація збільшує ризик помилок під час роботи програми:

JavaScript
function main() { var s = "Bender"; var k = 1; var n = k.length; }
Java
public static void main() { String s ="Bender"; int k = 1; int n = k.length(); }

У прикладі вище, ми підставили замість s (рядки), змінну k (число). У випадку з Java помилка буде виявлена на етапі компіляції, у випадку з JavaScript – пізніше: вже під час виконання цього коду. Якщо хочеш оголосити змінну в JavaScript, треба написати «var+ім'я». Типів змінних немає, так само немає типів методів/функцій та їх аргументів.

У JavaScript дуже мало строгих правил і дуже багато анархії.

span>

Можна оголосити функцію з 5 аргументами, а викликати з двома – решта дорівнюватиме null. Можна оголосити функцію з двома аргументами, а під час виклику передати п'ять. Три просто відкинуться. Контроль за помилками, друкарськими помилками, змінами – мінімальний.

Факт третій – у JavaScript є if, for, while

У JavaScript є if, for, while і це – хороша новина. Дивимося приклади:

JavaScript< /div>
function main () { var s = "Bender"; var result = ""; for(var i=0;i<s.length;i++) { result += s[i]+ ""; } if(result.length>10) { alert (result); } else { while(result.length <= 10) { result += " "; } alert(result); } }
Java
public static void main() { String s = "Bender"; char[] s2 = s.toCharArray(); String result = ""; for(int i=0;i<s.length();i++) { result += s2[i]+ ""; } if(result.length()>10) { System.out.println(result); } else { while (result.length() <= 10) { result += " "; } System.out.println(result); } }

— Досить схоже. Думаю, я міг би розібратися, як працює код, написаний на JavaScript.

— Оптимізм – це добре.

Факт четвертий – у JavaScript є try-catch-finally

У JavaScript є винятки (Error ) і це добре. checked винятків немає, тільки unchecked – аналог RuntimeException. try-catch-finally працює так само, як і Java. Приклад:

JavaScript
function main() { < span class="text-red">try { var s = null; var n=s.length; } catch(e) { alert(e); } }
Java
public static void main() { try { String s = null; int n = s.length(); } catch(Exception e) { System.out.println(e); } }

При спробі дізнатися довжину рядка буде викинуто виняток, т.к. змінна посилається на null.

Факт п'ятий – у JavaScript є масиви

Хороша новина. JavaScript має масиви. Погана - там немає ні списків, ні колекцій. Ще одна хороша новина - масиви можуть динамічно розтягуватися, при додаванні нових елементів і зменшуватися при їх видаленні. Більше схоже на гібрид масиву та списку.

Приклад:

JavaScript
function main() { var m = [1,3, 18, 45, 'c', "roma", null]; alert(m.length); //7 m.push("end"); alert(m.length); //8 for (var i=0;i<m.length;i++) { alert(m [i]); } }
Java
public static void main() { List m = Arrays.asList(1,3,18, 45,'c', "roma", null); System.out.println(m.size());//7 m.add("end "); System.out.println(m.size());//8 for (int i=0;i<m .size();i++) { System.out.println(m.get(i)); } }

— А що це за квадратні дужки під час оголошення масиву?

— Це і є оголошення масиву. Щоб оголосити масив, треба написати квадратні дужки, а між ними перерахувати елементи масиву. Порожній масив оголошується просто парою дужок.

Приклад
var m = [];

Факт шостий – у JavaScript є об'єкти

У JavaScript є об'єкти. Насправді все JavaScript є об'єктом, примітивні типи теж. Кожен об'єкт представлений у вигляді набору пар «ключ-значення». Грубо кажучи, кожен об'єкт JavaScript – це аналог HashMap Java. Приклад оголошення об'єкта:

JavaScript
function main() { var m = { first_name : "Bill", last_name: "Gates", age: 54, weight: 67, children : ["Emma", "Catrin"], wife: { first_name : "Melinda", last_name: "Gates", age: 45, } } ; alert(m.first_name); // Bill alert(m.age); // 54 alert(m.wife.first_name);// Melinda m.age = 45; m.age++; m["first_name"] = "Stive"; m["wife"] = null;
Java
 public static void main() { HashMap m = new HashMap(); m.put("first_name", "Bill"); m.put("last_name", "Gates"); m.put("age", 54); m.put("weight", 67); String[] children = {"Emma","Catrin"}; m.put("children", children); HashMap wife = new HashMap(); wife.put("first_name", "Melinda"); wife.put("last_name", "Gates"); wife.put("age", 45); m.put("wife", wife); System.out.println(m.get("first_name")); System.out.println(m.get("age")); HashMap w = ((HashMap)m.get("wife")); System.out.println(w.get("first_name")));m.put(" age", 45); m.put("age", ((Integer)m.get("age"))+1); m.put("first_name","Stive"); m.put("wife", null);

Щоб створити новий об'єкт, достатньо написати дві фігурні дужки «{}».

Всередині дужок можна вказати дані об'єкта у форматі «ключ, двокрапка, значення, кома».

До полів об'єкта можна звертатися двома способами:Еквівалентні записи

m.age = 45;
m[“age”] = 45;

Якщо вказаного поля немає, воно створюється.

Щось мій газовий міхур переповнився, думаю треба зробити перерву.

Факт сьомий – JavaScript створено, щоб працювати всередині веб-сторінок.