Blender для начинающих/Основы Web технологий: различия между версиями

Материал из Викиучебника — открытых книг для открытого мира
Содержимое удалено Содержимое добавлено
м Откат правок Владислав Молдован (обс.) к версии 109.72.249.93
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 10: Строка 10:
==Подключение JS==
==Подключение JS==
Для использования JS в файле.html надо написать следующее между тегами <nowiki><body> и </body></nowiki>:
Для использования JS в файле.html надо написать следующее между тегами <nowiki><body> и </body></nowiki>:
<source lang="js">
<syntaxhighlight lang="js">
<script type="text/javascript">
<script type="text/javascript">
//код
//код
</script>
</script>
</syntaxhighlight>
</source>
Первая стока указывает тип языка, на котором ниже будет писаться код до <nowiki></script></nowiki>. Атрибут type принимает значение «text/javascript», указывающее на то, что ниже располагается код, написаный на JS.
Первая стока указывает тип языка, на котором ниже будет писаться код до <nowiki></script></nowiki>. Атрибут type принимает значение «text/javascript», указывающее на то, что ниже располагается код, написаный на JS.


Размещать скрипты можно и в <nowiki><head> </head></nowiki>:
Размещать скрипты можно и в <nowiki><head> </head></nowiki>:
<source lang="js">
<syntaxhighlight lang="js">
<script type="text/javascript">
<script type="text/javascript">
//код
//код
</script>
</script>
</syntaxhighlight>
</source>


Другим способом является использование кода на этом языке из внешнего файла:
Другим способом является использование кода на этом языке из внешнего файла:
<source lang="js"><script type="text/javascript" src="путь"></script></source>
<syntaxhighlight lang="js"><script type="text/javascript" src="путь"></script></syntaxhighlight>
Путь - путь к файлу, в котором лежит ваш скрипт.
Путь - путь к файлу, в котором лежит ваш скрипт.


==Комментарии==
==Комментарии==
Комментарии в JS могут начинаться с //, если они длятся всего одну строку:
Комментарии в JS могут начинаться с //, если они длятся всего одну строку:
<source lang="js">// комментарий</source>
<syntaxhighlight lang="js">// комментарий</syntaxhighlight>
Или начинаться с /*, и заканчиваться */, если это многострочные комментарии:
Или начинаться с /*, и заканчиваться */, если это многострочные комментарии:
<source lang="js">/*
<syntaxhighlight lang="js">/*
комментарий
комментарий
*/</source>
*/</syntaxhighlight>
==Вывод на экран==
==Вывод на экран==
Вывод чего-либо на страницу производится функцией document.write():
Вывод чего-либо на страницу производится функцией document.write():
<source lang="js">document.write('что-то');</source>
<syntaxhighlight lang="js">document.write('что-то');</syntaxhighlight>
При том, внутри скобок все пишется по правилам HTML (то, что требуется отобразить).
При том, внутри скобок все пишется по правилам HTML (то, что требуется отобразить).


Например, вывод жирного текста:
Например, вывод жирного текста:
<source lang="js">document.write('<b>пример жирного текста</b>');</source>
<syntaxhighlight lang="js">document.write('<b>пример жирного текста</b>');</syntaxhighlight>
==Переменные==
==Переменные==
Все переменные объявляются с ключевого слова var:
Все переменные объявляются с ключевого слова var:
<source lang="js">var переменная;</source>
<syntaxhighlight lang="js">var переменная;</syntaxhighlight>
Переменная будет локальной, если она объявлена в теле функции. Если же объявлять без var (внутри функции), то созданая переменная будет глобальной.
Переменная будет локальной, если она объявлена в теле функции. Если же объявлять без var (внутри функции), то созданая переменная будет глобальной.
Также, можно сразу указывать ее значение:
Также, можно сразу указывать ее значение:
<source lang="js">var переменная = значение;</source>
<syntaxhighlight lang="js">var переменная = значение;</syntaxhighlight>
К примеру:
К примеру:
<source lang="js">var a = 23;</source>
<syntaxhighlight lang="js">var a = 23;</syntaxhighlight>
Можно и удалить переменные, написав конструкцию:
Можно и удалить переменные, написав конструкцию:
<source lang="js">delete переменная;</source>
<syntaxhighlight lang="js">delete переменная;</syntaxhighlight>
Это действует на переменные, объявленные без var. Если же переменная декларирована с var, то есть два способа ее удалить:
Это действует на переменные, объявленные без var. Если же переменная декларирована с var, то есть два способа ее удалить:
<source lang="js">переменная = undefined;
<syntaxhighlight lang="js">переменная = undefined;
переменная = null;</source>
переменная = null;</syntaxhighlight>
===Переменные let===
===Переменные let===
Эти переменные имеют еще более узкую область видимости - только внутри того блока, в котором объявлены. Например, в следующих блоках:
Эти переменные имеют еще более узкую область видимости - только внутри того блока, в котором объявлены. Например, в следующих блоках:
Строка 61: Строка 61:
# while
# while
Их декларация происходит следующим образом:
Их декларация происходит следующим образом:
<source lang="js">let переменная = значение;</source>
<syntaxhighlight lang="js">let переменная = значение;</syntaxhighlight>


==Массивы==
==Массивы==
Массивы объявляются с помощью функции Array(), создющую пустой массив:
Массивы объявляются с помощью функции Array(), создющую пустой массив:
<source lang="js">переменная = new Array()</source>
<syntaxhighlight lang="js">переменная = new Array()</syntaxhighlight>
Для заполнения массива используйте конструкцию:
Для заполнения массива используйте конструкцию:
<source lang="js">массив[индекс] = значение</source>
<syntaxhighlight lang="js">массив[индекс] = значение</syntaxhighlight>
Например:
Например:
<source lang="js">a = new Array();
<syntaxhighlight lang="js">a = new Array();
a[0] = 12
a[0] = 12
a[2] = 0</source>
a[2] = 0</syntaxhighlight>
Причем, если Вы указали индекс элемента массива, который превышает все предыдущее, длина массива станет равна i + 1, где i - этот индекс.
Причем, если Вы указали индекс элемента массива, который превышает все предыдущее, длина массива станет равна i + 1, где i - этот индекс.


==Условный оператор if==
==Условный оператор if==
Условный оператор if в JS имеет синтаксис:
Условный оператор if в JS имеет синтаксис:
<source lang="js">if условие
<syntaxhighlight lang="js">if условие
{
{
// команды
// команды
Строка 83: Строка 83:
{
{
// команды2
// команды2
}</source>
}</syntaxhighlight>
В условие могут входить такие знаки сравнения:
В условие могут входить такие знаки сравнения:
{| class="wikitable"
{| class="wikitable"
Строка 104: Строка 104:
|}
|}
Вывод сообщения в зависимости от значений переменных:
Вывод сообщения в зависимости от значений переменных:
<source lang="js">
<syntaxhighlight lang="js">
var a = 3;
var a = 3;
var b = 7;
var b = 7;
Строка 114: Строка 114:
{
{
document.write('a не равно b')
document.write('a не равно b')
}}</source>
}}</syntaxhighlight>
Иная форма оператора if представлена ниже:
Иная форма оператора if представлена ниже:
<source lang="js">if условие
<syntaxhighlight lang="js">if условие
{
{
// команды
// команды
Строка 128: Строка 128:
{
{
// командыN
// командыN
}</source>
}</syntaxhighlight>
Даная форма условного оператора нужна для проверки большого количества условий. Если одно из условий выполнилось, то выполнятся команды написанные для этого условия, и браузер завершит проверку остальных условий.
Даная форма условного оператора нужна для проверки большого количества условий. Если одно из условий выполнилось, то выполнятся команды написанные для этого условия, и браузер завершит проверку остальных условий.


Например, здесь выведется только одно сообщение - о равенстве переменных:
Например, здесь выведется только одно сообщение - о равенстве переменных:
<source lang="js">
<syntaxhighlight lang="js">
var a = 3;
var a = 3;
var b = 3;
var b = 3;
Строка 146: Строка 146:
{
{
document.write('a не равно b')
document.write('a не равно b')
}</source>
}</syntaxhighlight>
===Сложные условия===
===Сложные условия===
Для написания более сложных условий требуются специальные логические операторы: && (и), || (или) и ! (не).
Для написания более сложных условий требуются специальные логические операторы: && (и), || (или) и ! (не).


Записать условие «a равно либо b, либо c» с их помощью можно следующим образом:
Записать условие «a равно либо b, либо c» с их помощью можно следующим образом:
<source lang="js">if ((a==b) || (a==c))</source>
<syntaxhighlight lang="js">if ((a==b) || (a==c))</syntaxhighlight>


==Циклы==
==Циклы==
Строка 161: Строка 161:
===Цикл for===
===Цикл for===
Цикл for описывается так:
Цикл for описывается так:
<source lang="js">for (объявление переменной, условие, изменение переменной)
<syntaxhighlight lang="js">for (объявление переменной, условие, изменение переменной)
{
{
//команды
//команды
}</source>
}</syntaxhighlight>
Первым объявляется любая переменная, доступная только для использования ее циклом, либо присваивается значение уже существующей переменной. Ее значение изменения прописывается в самом конце.
Первым объявляется любая переменная, доступная только для использования ее циклом, либо присваивается значение уже существующей переменной. Ее значение изменения прописывается в самом конце.


Команды в теле цикла выполняются до тех пор, пока условие выполняется, к примеру:
Команды в теле цикла выполняются до тех пор, пока условие выполняется, к примеру:
<source lang="js">for (v=0, v<100, i+1)
<syntaxhighlight lang="js">for (v=0, v<100, i+1)
{
{
document.write(v+'</br>')
document.write(v+'</br>')
}</source>
}</syntaxhighlight>


===Цикл while===
===Цикл while===
Цикл While нужен тогда, когда надо выполнять какие-то действия до тех пор, пока условие верно:
Цикл While нужен тогда, когда надо выполнять какие-то действия до тех пор, пока условие верно:
<source lang="js">while условие
<syntaxhighlight lang="js">while условие
{
{
// команды
// команды
}</source>
}</syntaxhighlight>
Например:
Например:
<source lang="js">while (i<100)
<syntaxhighlight lang="js">while (i<100)
{
{
i = i + 1
i = i + 1
document.write(v+'</br>')
document.write(v+'</br>')
}</source>
}</syntaxhighlight>


===Цикл do while===
===Цикл do while===
От цикла while он имеет одно отличие - блок команд выполняется всегда от одного или более раз.
От цикла while он имеет одно отличие - блок команд выполняется всегда от одного или более раз.
Например:
Например:
<source lang="js">do
<syntaxhighlight lang="js">do
{
{
i = i + 1
i = i + 1
document.write(v+'</br>')
document.write(v+'</br>')
}
}
while (i<100);</source>
while (i<100);</syntaxhighlight>


===Цикл for in===
===Цикл for in===
Этот цикл нужен лишь тогда, когда некоторая переменная поочередно должна принять все значения массива. Форма его записи такова:
Этот цикл нужен лишь тогда, когда некоторая переменная поочередно должна принять все значения массива. Форма его записи такова:
<source lang="js">for (переменная in массив)
<syntaxhighlight lang="js">for (переменная in массив)
{
{
// команды
// команды
}
}
</syntaxhighlight>
</source>
Перебирание всех элементов массива:
Перебирание всех элементов массива:
<source lang="js">
<syntaxhighlight lang="js">
var a;
var a;
var arr = new Array;
var arr = new Array;
Строка 214: Строка 214:
document.write(a): // будет выведено 'Учимся программировать вместе.'
document.write(a): // будет выведено 'Учимся программировать вместе.'
}
}
</syntaxhighlight>
</source>
===Команды break и continue===
===Команды break и continue===
# break используется для выхода из цикла.
# break используется для выхода из цикла.
# continue - для новой итерации цикла.
# continue - для новой итерации цикла.
Например выход из цикла при равенстве a = 3:
Например выход из цикла при равенстве a = 3:
<source lang="js">
<syntaxhighlight lang="js">
for (a=-2, a<100, a+1)
for (a=-2, a<100, a+1)
{
{
Строка 229: Строка 229:
document.write('a== ' + a):
document.write('a== ' + a):
}
}
</syntaxhighlight>
</source>


==Функции==
==Функции==
Функции оформляются вот так:
Функции оформляются вот так:
<source lang="js">var имя=function(параметры)
<syntaxhighlight lang="js">var имя=function(параметры)
{
{
//команды
//команды
}</source>
}</syntaxhighlight>
Например:
Например:
<source lang="js">
<syntaxhighlight lang="js">
var d;
var d;
var f=function(a, b, c)
var f=function(a, b, c)
{
{
d = a + b + c;
d = a + b + c;
}</source>
}</syntaxhighlight>
Но функции могут также и возвращать значения с помощью оператора return:
Но функции могут также и возвращать значения с помощью оператора return:
<source lang="js">var имя=function(параметры)
<syntaxhighlight lang="js">var имя=function(параметры)
{
{
//команды
//команды
return значение
return значение
}</source>
}</syntaxhighlight>
Например:
Например:
<source lang="js">
<syntaxhighlight lang="js">
var d;
var d;
var f=function(a, b, c)
var f=function(a, b, c)
Строка 257: Строка 257:
return a + b + c;
return a + b + c;
}
}
d = f(1,2,3)</source>
d = f(1,2,3)</syntaxhighlight>
=Ajax=
=Ajax=
Ajax - технология, позволяющая обновить данные страницы, не обновляя страницу полностью. Используется в социальных сетях, таких как: «ВК», «Facebook» и других.
Ajax - технология, позволяющая обновить данные страницы, не обновляя страницу полностью. Используется в социальных сетях, таких как: «ВК», «Facebook» и других.
Строка 280: Строка 280:
==Представление данных==
==Представление данных==
Любые данные в JSON представляются двумя способами. Для массивов:
Любые данные в JSON представляются двумя способами. Для массивов:
<source lang="json">[
<syntaxhighlight lang="json">[
поле:значение
поле:значение
]
]
</syntaxhighlight>
</source>
И для объектов:
И для объектов:
<source lang="json">{
<syntaxhighlight lang="json">{
поле:значение
поле:значение
}
}
</syntaxhighlight>
</source>
Например:
Например:
<source lang="json">[
<syntaxhighlight lang="json">[
"Имя":"Вася",
"Имя":"Вася",
"Фамилия":"Петров",
"Фамилия":"Петров",
]
]
</syntaxhighlight>
</source>
Данную структуру можно включить в объект:
Данную структуру можно включить в объект:
<source lang="json">
<syntaxhighlight lang="json">
{
{
"Дата регистрации":"сегодня",
"Дата регистрации":"сегодня",
Строка 305: Строка 305:
]
]
}
}
</syntaxhighlight>
</source>
==Конвертирование в строку JSON и наоборот==
==Конвертирование в строку JSON и наоборот==
В JS есть встроенная функция, конвертирующая содержание некоторой переменной в строку JSON - JSON.stringify().
В JS есть встроенная функция, конвертирующая содержание некоторой переменной в строку JSON - JSON.stringify().


Пусть имеем:
Пусть имеем:
<source lang="js">
<syntaxhighlight lang="js">
var a = {
var a = {
"RegistrationDate":"today",
"RegistrationDate":"today",
Строка 320: Строка 320:
}
}
JSON.stringify(a); // получим: '{"RegistrationDate":"today","Person":["Name":"Den","FriendName":Kolya"]}'
JSON.stringify(a); // получим: '{"RegistrationDate":"today","Person":["Name":"Den","FriendName":Kolya"]}'
</syntaxhighlight>
</source>
Данный метод просто запишет содержание переменной в одну строку.
Данный метод просто запишет содержание переменной в одну строку.


Противоположное действие имеет метод JSON.parse():
Противоположное действие имеет метод JSON.parse():
<source lang="js">
<syntaxhighlight lang="js">
var a = JSON.parse('{"RegistrationDate":"today","Person":["Name":"Den","FriendName":Kolya"]}')
var a = JSON.parse('{"RegistrationDate":"today","Person":["Name":"Den","FriendName":Kolya"]}')
a.Person[0] // равно "Den"
a.Person[0] // равно "Den"
</syntaxhighlight>
</source>


[[File:JSON1.jpg|frameless]]
[[File:JSON1.jpg|frameless]]

Текущая версия от 15:48, 16 апреля 2020



- перейти к комбинациям клавиш.
- перейти к первому необязательному для изучения разделу.
- переход к следующей по курсу главе (порядок глав не совпадает с порядком глав по содержанию).

CTRL+ALT+U

CTRL+U

SHIFT+S

CTRL+Q

A

R

G

S

SHIFT+D

ALT+D

CTRL+NUMPAD+

CTRL+NUMPAD-

SHIFT+L

SHIFT+G

ALT+M

F

CTRL+ALT+SHIFT+C

SHIFT+S

D

T

I

Shift+B

B

C

Одни из главных классов Python: bpy.ops | bpy.data | bpy.types.ID

Рендеринг Рендер-ферма
Отсечение Шейдер
Трассировка лучей Сжатие текстур

Расположение элементов интерфейса


Ссылки на материалы
Возможно, Вас заинтересует следующее:
О Blender 2.76 Скачать Blender 2.76

Данная глава требует знаний по темам: программирование. Убедительная просьба, изучите основы, иначе часть информации, изложенной здесь, может быть вами не воспринята.

Изучить основы программирования можно здесь: Python и Основы PascalABC.Net.

Blend4Web и Web[править]

«Blend4Web» - аддон, написанный для Blender, и нужный для создания интерактивных Web-страниц с элементами 3D. По данной причине, Вы должны знать основы JS, Ajax и JSON.

JavaScript[править]

JavaScript - скриптовый язык программирования, встраивающийся в web-страницы сайтов, и выполняющийся на стороне клиента (компьютера пользователя), а не сервера.

Подключение JS[править]

Для использования JS в файле.html надо написать следующее между тегами <body> и </body>:

<script type="text/javascript">
   //код
</script>

Первая стока указывает тип языка, на котором ниже будет писаться код до </script>. Атрибут type принимает значение «text/javascript», указывающее на то, что ниже располагается код, написаный на JS.

Размещать скрипты можно и в <head> </head>:

<script type="text/javascript">
   //код
</script>

Другим способом является использование кода на этом языке из внешнего файла:

<script type="text/javascript" src="путь"></script>

Путь - путь к файлу, в котором лежит ваш скрипт.

Комментарии[править]

Комментарии в JS могут начинаться с //, если они длятся всего одну строку:

// комментарий

Или начинаться с /*, и заканчиваться */, если это многострочные комментарии:

/*
комментарий
*/

Вывод на экран[править]

Вывод чего-либо на страницу производится функцией document.write():

document.write('что-то');

При том, внутри скобок все пишется по правилам HTML (то, что требуется отобразить).

Например, вывод жирного текста:

document.write('<b>пример жирного текста</b>');

Переменные[править]

Все переменные объявляются с ключевого слова var:

var переменная;

Переменная будет локальной, если она объявлена в теле функции. Если же объявлять без var (внутри функции), то созданая переменная будет глобальной. Также, можно сразу указывать ее значение:

var переменная = значение;

К примеру:

var a = 23;

Можно и удалить переменные, написав конструкцию:

delete переменная;

Это действует на переменные, объявленные без var. Если же переменная декларирована с var, то есть два способа ее удалить:

переменная = undefined;
переменная = null;

Переменные let[править]

Эти переменные имеют еще более узкую область видимости - только внутри того блока, в котором объявлены. Например, в следующих блоках:

  1. if
  2. for
  3. while

Их декларация происходит следующим образом:

let переменная = значение;

Массивы[править]

Массивы объявляются с помощью функции Array(), создющую пустой массив:

переменная = new Array()

Для заполнения массива используйте конструкцию:

массив[индекс] = значение

Например:

a = new Array();
a[0] = 12
a[2] = 0

Причем, если Вы указали индекс элемента массива, который превышает все предыдущее, длина массива станет равна i + 1, где i - этот индекс.

Условный оператор if[править]

Условный оператор if в JS имеет синтаксис:

if условие
{
   // команды
}
else
{
   // команды2
}

В условие могут входить такие знаки сравнения:

Оператор сравнения Описание
== равно
=== равно (если и типы переменных равны)
!= не равно
> больше
>= больше или равно
< меньше
<= меньше или равно

Вывод сообщения в зависимости от значений переменных:

var a = 3;
var b = 7;
if (a==b)
{
   document.write('a равно b')
}
else
{
   document.write('a не равно b')
}}

Иная форма оператора if представлена ниже:

if условие
{
   // команды
}
else if условие2
{
   // команды2
}
...
else
{
   // командыN
}

Даная форма условного оператора нужна для проверки большого количества условий. Если одно из условий выполнилось, то выполнятся команды написанные для этого условия, и браузер завершит проверку остальных условий.

Например, здесь выведется только одно сообщение - о равенстве переменных:

var a = 3;
var b = 3;
if (a==b)
{
   document.write('a равно b')
}
else if (a==b)
{
   document.write('a равно b второе сообщение')
}
else
{
   document.write('a не равно b')
}

Сложные условия[править]

Для написания более сложных условий требуются специальные логические операторы: && (и), || (или) и ! (не).

Записать условие «a равно либо b, либо c» с их помощью можно следующим образом:

if ((a==b) || (a==c))

Циклы[править]

Бывают 4 вида циклов:

  1. for
  2. while
  3. do while
  4. for in

Цикл for[править]

Цикл for описывается так:

for (объявление переменной, условие, изменение переменной)
{
   //команды
}

Первым объявляется любая переменная, доступная только для использования ее циклом, либо присваивается значение уже существующей переменной. Ее значение изменения прописывается в самом конце.

Команды в теле цикла выполняются до тех пор, пока условие выполняется, к примеру:

for (v=0, v<100, i+1)
{
   document.write(v+'</br>')
}

Цикл while[править]

Цикл While нужен тогда, когда надо выполнять какие-то действия до тех пор, пока условие верно:

while условие
{
   // команды
}

Например:

while (i<100)
{
   i = i + 1
   document.write(v+'</br>')
}

Цикл do while[править]

От цикла while он имеет одно отличие - блок команд выполняется всегда от одного или более раз. Например:

do
{
   i = i + 1
   document.write(v+'</br>')
}
while (i<100);

Цикл for in[править]

Этот цикл нужен лишь тогда, когда некоторая переменная поочередно должна принять все значения массива. Форма его записи такова:

for (переменная in массив)
{
   // команды
}

Перебирание всех элементов массива:

var a;
var arr = new Array;
arr[0] = 'Учимся ';
arr[1] = 'программировать ';
arr[2] = 'вместе.';
for (a in arr)
{
   document.write(a): // будет выведено 'Учимся программировать вместе.'
}

Команды break и continue[править]

  1. break используется для выхода из цикла.
  2. continue - для новой итерации цикла.

Например выход из цикла при равенстве a = 3:

for (a=-2, a<100, a+1)
{
   if (a = 3)
      {
      document.write('Цикл завершен.');
      break;
      }
   document.write('a== ' + a):
}

Функции[править]

Функции оформляются вот так:

var имя=function(параметры)
{
   //команды
}

Например:

var d;
var f=function(a, b, c)
{
   d = a + b + c;
}

Но функции могут также и возвращать значения с помощью оператора return:

var имя=function(параметры)
{
   //команды
   return значение
}

Например:

var d;
var f=function(a, b, c)
{
   return a + b + c;
}
d = f(1,2,3)

Ajax[править]

Ajax - технология, позволяющая обновить данные страницы, не обновляя страницу полностью. Используется в социальных сетях, таких как: «ВК», «Facebook» и других.

Методы Get и Post[править]

Эти методы используются для передачи данных на сервер. Они различаются при работе тем, что:

  1. Метод get передает все данные серверу в заголовке, что ограничивает возможный размер передаваемой информации.
  2. Метод post передает данные серверу, так что на URL это не влияет.
  3. Как следствие, метод Get не является безопасным для передачи информации.

Этапы работы Ajax[править]

При работе с Ajax придется пройти такие этапы:

  1. Получение данных с формы.
  2. Формировние URL для подключения.
  3. Создание соединения с сервером.
  4. Установка функции, которая выполнится, когда придет ответ с сервера.
  5. Передача данных серверу.

JSON[править]

JSON - простой способ хранить сложные структурированные данные.

Представление данных[править]

Любые данные в JSON представляются двумя способами. Для массивов:

[
   поле:значение
]

И для объектов:

{
   поле:значение
}

Например:

[
   "Имя":"Вася",
   "Фамилия":"Петров",
]

Данную структуру можно включить в объект:

{
   "Дата регистрации":"сегодня",
   "Персона":
      [
      "Имя":"Вася",
      "Фамилия":"Петров",
      ]
}

Конвертирование в строку JSON и наоборот[править]

В JS есть встроенная функция, конвертирующая содержание некоторой переменной в строку JSON - JSON.stringify().

Пусть имеем:

var a = {
   "RegistrationDate":"today",
   "Person":
      [
      "Name":"Den",
      "FriendName":"Kolya",
      ]
}
JSON.stringify(a); // получим: '{"RegistrationDate":"today","Person":["Name":"Den","FriendName":Kolya"]}'

Данный метод просто запишет содержание переменной в одну строку.

Противоположное действие имеет метод JSON.parse():

var a = JSON.parse('{"RegistrationDate":"today","Person":["Name":"Den","FriendName":Kolya"]}')
a.Person[0] // равно "Den"