diff --git a/ru-ru/javascript-ru.html.markdown b/ru-ru/javascript-ru.html.markdown index aa1d1f3c..1369d0d7 100644 --- a/ru-ru/javascript-ru.html.markdown +++ b/ru-ru/javascript-ru.html.markdown @@ -9,6 +9,8 @@ filename: javascript-ru.js lang: ru-ru --- +todo: привести все названия языка к коректному написанию + Javascript был разработан Бренданом Айком из Netcape в 1995. Изначально предполагалось, что он станет простым вариантом скриптового языка для сайтов, дополняющий к Java, который в свою очередь использовался бы для более сложных @@ -169,60 +171,83 @@ undefined; // испрользуется чтобы показать, что з // Note that 0 is falsy and "0" is truthy, even though 0 == "0". /////////////////////////////////// -// 2. Variables, Arrays and Objects +// 2. Переменные, массивы и объекты +// Переменные объявляются ключевым словом var. Javascript динамически +// типизируемый, так что указывать тип не нужно. +// Присвоение значения описывается с помощью оператора = // Variables are declared with the var keyword. JavaScript is dynamically typed, // so you don't need to specify type. Assignment uses a single = character. var someVar = 5; +// если не указать ключевого слова var, ошибки не будет... // if you leave the var keyword off, you won't get an error... someOtherVar = 10; +// ...но переменная будет создана в глобальном контексте, в не области +// видимости, в которой она была объявлена. // ...but your variable will be created in the global scope, not in the scope // you defined it in. +// Переменные объявленные без присвоения значения, содержать undefined // Variables declared without being assigned to are set to undefined. var someThirdVar; // = undefined +// Для математических операций над числами есть короткая запись: // There's shorthand for performing math operations on variables: -someVar += 5; // equivalent to someVar = someVar + 5; someVar is 10 now -someVar *= 10; // now someVar is 100 +someVar += 5; // тоже что someVar = someVar + 5; someVar равно 10 теперь +someVar *= 10; // а теперь -- 100 -// and an even-shorter-hand for adding or subtracting 1 -someVar++; // now someVar is 101 -someVar--; // back to 100 +// еще более короткая запись для добавления и вычитания 1 +someVar++; // теперь someVar равно 101 +someVar--; // обратно к 100 +// Массивы -- упорядоченные списки значений любых типов. // Arrays are ordered lists of values, of any type. var myArray = ["Hello", 45, true]; +// Для доступу к элементам массивов используйте квадратные скобки. +// Индексы массивов начинаются с 0 // Their members can be accessed using the square-brackets subscript syntax. // Array indices start at zero. myArray[1]; // = 45 +// Массивы мутабельны(изменяемы) и имеют переменную длину. // Arrays are mutable and of variable length. -myArray.push("World"); +myArray.push("World"); // добавить элемент myArray.length; // = 4 -// Add/Modify at specific index +// Добавить или изменить значение по конкретному индексу myArray[3] = "Hello"; +// Объёкты javascript похожи на dictionary или map из других языков +// программирования. Это неупорядочнные коллекции пар ключ-значение. // JavaScript's objects are equivalent to 'dictionaries' or 'maps' in other // languages: an unordered collection of key-value pairs. var myObj = {key1: "Hello", key2: "World"}; +// Ключи -- это строки, но кавычки не требуются если названия явлюятся +// корректными javascript идентификаторами. Значения могут быть любого типа. // Keys are strings, but quotes aren't required if they're a valid // JavaScript identifier. Values can be any type. var myObj = {myKey: "myValue", "my other key": 4}; +// Доступ к атрибту объекта можно получить с помощью квадратных скобок // Object attributes can also be accessed using the subscript syntax, myObj["my other key"]; // = 4 +// ... или используя точечную нотацию, при условии что ключ является +// корректным идентификатором // ... or using the dot syntax, provided the key is a valid identifier. myObj.myKey; // = "myValue" +// Объекты мутабельны. В существуюещем объекте можно изменить значние +// или добавить новый атрибут // Objects are mutable; values can be changed and new keys added. myObj.myThirdKey = true; +// При попытке доступа к атрибуту, который до этого не был создан, будет +// возвращен undefined // If you try to access a value that's not yet set, you'll get undefined. myObj.myFourthKey; // = undefined