beautify 1st part of the tutorial
This commit is contained in:
parent
e3dd2cedc0
commit
6444024a9d
327 changed files with 2358 additions and 1986 deletions
|
@ -25,7 +25,7 @@
|
|||
|
||||
```js
|
||||
1. o = new Object();
|
||||
2. o = {}; // пустые фигурные скобки
|
||||
2. o = {}; // пустые фигурные скобки
|
||||
```
|
||||
|
||||
Обычно все пользуются синтаксисом `(2)`, т.к. он короче.
|
||||
|
@ -50,9 +50,9 @@ var person = {}; // пока пустой
|
|||
```js
|
||||
// при присвоении свойства в объекте автоматически создаётся "ящик"
|
||||
// с именем "name" и в него записывается содержимое 'Вася'
|
||||
person.name = 'Вася';
|
||||
person.name = 'Вася';
|
||||
|
||||
person.age = 25; // запишем ещё одно свойство: с именем 'age' и значением 25
|
||||
person.age = 25; // запишем ещё одно свойство: с именем 'age' и значением 25
|
||||
```
|
||||
|
||||
<img src="object-person-1.svg">
|
||||
|
@ -61,7 +61,7 @@ person.age = 25; // запишем ещё одно свойство: с име
|
|||
|
||||
Чтобы прочитать их -- также обратимся через точку:
|
||||
```js
|
||||
alert(person.name + ': ' + person.age); // "Вася: 25"
|
||||
alert( person.name + ': ' + person.age ); // "Вася: 25"
|
||||
```
|
||||
|
||||
Удаление осуществляется оператором `delete`:
|
||||
|
@ -84,8 +84,8 @@ delete person.age;
|
|||
Его синтаксис: `"prop" in obj`, причем имя свойства -- в виде строки, например:
|
||||
|
||||
```js
|
||||
if ("name" in person) {
|
||||
alert("Свойство name существует!");
|
||||
if ("name" in person) {
|
||||
alert( "Свойство name существует!" );
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -99,17 +99,19 @@ if ("name" in person) {
|
|||
//+ run
|
||||
var person = {};
|
||||
|
||||
alert(person.lalala); // undefined, нет свойства с ключом lalala
|
||||
alert( person.lalala ); // undefined, нет свойства с ключом lalala
|
||||
```
|
||||
|
||||
Таким образом **мы можем легко проверить существование свойства -- получив его и сравнив с `undefined`**:
|
||||
|
||||
```js
|
||||
//+ run
|
||||
var person = { name: "Василий" };
|
||||
var person = {
|
||||
name: "Василий"
|
||||
};
|
||||
|
||||
alert(person.lalala === undefined); // true, свойства нет
|
||||
alert(person.name === undefined); // false, свойство есть.
|
||||
alert( person.lalala === undefined ); // true, свойства нет
|
||||
alert( person.name === undefined ); // false, свойство есть.
|
||||
```
|
||||
|
||||
[smart header="Разница между проверками `in` и `=== undefined`"]
|
||||
|
@ -127,8 +129,8 @@ obj.test = undefined; // добавили свойство со значение
|
|||
|
||||
*!*
|
||||
// проверим наличие свойств test и заведомо отсутствующего blabla
|
||||
alert(obj.test === undefined); // true
|
||||
alert(obj.blabla === undefined); // true
|
||||
alert( obj.test === undefined ); // true
|
||||
alert( obj.blabla === undefined ); // true
|
||||
*/!*
|
||||
```
|
||||
|
||||
|
@ -185,10 +187,12 @@ person.любимый стиль музыки = 'Джаз'; // ??? ошибка
|
|||
|
||||
```js
|
||||
//+ run
|
||||
var person = { age: 25 };
|
||||
var person = {
|
||||
age: 25
|
||||
};
|
||||
var key = 'age';
|
||||
|
||||
alert( person[key] ); // выведет person['age']
|
||||
alert( person[key] ); // выведет person['age']
|
||||
```
|
||||
|
||||
Вообще, если имя свойства хранится в переменной (`var key = "age"`), то единственный способ к нему обратиться -- это квадратные скобки `person[key]`.
|
||||
|
@ -203,9 +207,9 @@ alert( person[key] ); // выведет person['age']
|
|||
|
||||
```js
|
||||
var menuSetup = {
|
||||
width: 300,
|
||||
height: 200,
|
||||
title: "Menu"
|
||||
width: 300,
|
||||
height: 200,
|
||||
title: "Menu"
|
||||
};
|
||||
|
||||
// то же самое, что:
|
||||
|
@ -222,9 +226,9 @@ menuSetup.title = 'Menu';
|
|||
|
||||
```js
|
||||
var menuSetup = {
|
||||
width: 300,
|
||||
'height': 200,
|
||||
"мама мыла раму": true
|
||||
width: 300,
|
||||
'height': 200,
|
||||
"мама мыла раму": true
|
||||
};
|
||||
```
|
||||
|
||||
|
@ -232,7 +236,7 @@ var menuSetup = {
|
|||
|
||||
```js
|
||||
var user = {
|
||||
name: "Таня",
|
||||
name: "Таня",
|
||||
age: 25,
|
||||
*!*
|
||||
size: {
|
||||
|
@ -243,9 +247,9 @@ var user = {
|
|||
*/!*
|
||||
}
|
||||
|
||||
alert( user.name ) // "Таня"
|
||||
alert(user.name) // "Таня"
|
||||
|
||||
alert( user.size.top ) // 90
|
||||
alert(user.size.top) // 90
|
||||
```
|
||||
|
||||
Здесь значением свойства `size` является объект `{top: 90, middle: 60, bottom: 90 }`.
|
||||
|
@ -275,6 +279,7 @@ var user = {
|
|||
Например, есть много объектов с полями `name` и `age`:
|
||||
|
||||
```js
|
||||
//+ no-beautify
|
||||
{name: "Вася", age: 25}
|
||||
{name: "Петя", age: 22}
|
||||
{name: "Маша", age: 19}
|
||||
|
@ -284,6 +289,7 @@ var user = {
|
|||
Для их эффективного хранения будет создана структура, которая описывает данный вид объектов. Выглядеть она будет примерно так: `<string name, number age>`. А сами объекты будут представлены в памяти только данными:
|
||||
|
||||
```js
|
||||
//+ no-beautify
|
||||
<структура: string name, number age>
|
||||
Вася 25
|
||||
Петя 22
|
||||
|
@ -316,7 +322,7 @@ user.isAdmin = true;
|
|||
<li>Через переменную, в которой хранится ключ:
|
||||
|
||||
```js
|
||||
var key = "prop";
|
||||
var key = "prop";
|
||||
obj[key] = 5
|
||||
```
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue