<MyRusakov.ru />

Программирование на JavaScript с Нуля до Гуру 2.0

Программирование на JavaScript с Нуля до Гуру 2.0

Данный курс научит Вас программировать на языке JavaScript, который крайне желательно знать любому уважающему себя программисту. Курс состоит из 8 разделов, в которых Вы с нуля освоите этот язык и сможете создавать самые разные программы для самых разных задач любой сложности. В курсе Вы получите всю необходимую теоретическую часть, а также увидите массу практических примеров, в том числе, и из моей практики.

Дополнительно, почти к каждому уроку идут упражнения.

Помимо самого курса Вас ждёт ещё 5 бесплатных ценных Бонусов: «Библиотека jQuery», «Защита JavaScript-кода от копирования», «Решение упражнений из курса», «HTML для начинающих» и «CSS для начинающих».

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Поиск: Array

Что искали: Array

Всего найдено: 145 записей

функции, с помощью, которых мы будем проверять массивы: function array_is_list(array $value) {      если $value не массив возвращаем ложь
проверяет находится ли элемент в массиве функция называется in_array():<php  $arr = array("num", "str", "int");  if (in_array("str", $arr)) echo "элемент найден";  else echo
проводить рефакторинг предположим, у нас есть такой php-код: <php   $array = array();   for ($i = 0; $i < 100000; $i++) {     $array[$i] = $i;   }   $result = 0;  
     функция рекурсивно преобразует массив в объект     function array2object($array, &$obj)     {         foreach ($array as $key => $value)
измените массив в callback функции) итак, начнём создадим вот такой массив: var array = ["some string", "another string", "third string", "javascript", "lesson"]; foreach() первым разберём метод
статьи, посвященной теме итераторов в php в ней пойдет речь о php интерфейсе arrayaccess он позволяет нам создавать объекты, доступ к содержимому которых
свойствах и методах объекта array в javascript я и поведаюначнём с конструктора их несколько вот первый из них:var arr = new array();здесь создаётся массив,
<php   * двумерный массив с пользователями (например, из бд) *   $array = array();   $array[5] = array("email" => "abc1@mailru", "date_reg" => 1272895531);   $array[10] = array("email"
$this->mysqli->query($this->getquery($query, $params));     if (!$result_set) return false;     return $this->resultsettoarray($result_set);   }   * select-метод, возвращающий одну строку с результатом
декодировать его обратно в массив вот пример кода:  let array = [1, 2, 3];   localstoragesetitem(array, jsonstringify(array));   array = jsonparse(localstoragegetitem("array"));   consolelog(typeof
(вставлять между тегами <head> и <head>): <script type="textjavascript">   var array = new array(     "foto1jpg",     "foto2jpg",     "foto3jpeg"   );массив
найдем сумму элементов массива при помощи рекурсии function summa(array, sum){     sum += arrayshift();     if(arraylength !=0){         sum
целый (integer), вещественный (double), строковый (string), булевский (boolean) и массив (array) давайте разберём каждый тип переменной в javascript подробнеево-первых,
необходимо преобразовать в одномерный вот массив:     $array = [         ['site','myrusakov'],         ['age',10],
использовать web cryptography api, создав типизированный массив: var cryptostor = new uint16array(8); в этом случае мы создаем массив с 8 различными слотами, каждый из
именами баз данных (имя базы данных можно посмотреть в phpmyadmin) *   $db_names = array();   $db_names[] = "db1";   $db_names[] = "db2";     * массив с именами директорий,
простой пример: <php   $mysqli = new mysqli("localhost", "root", "", "mydb");   $array["first"] = "1";   $array["second"] = "2";   foreach ($array as $key => $value) {     $mysqli->query("delete from
php - array_pad функция array_pad дополняет массив каким-то значением до указанной величины на примере будет понятнее <php   $arr = [1,2,3];   $res = array_pad($arr,
$result[] = call_user_func_array(["articlescontroller","actionarticle"], [123]);  вызов второго метода с двумя параметрами $result[] =  call_user_func_array(["articlescontroller","actionсompanyblog"], ["myrusakov support",12345]);
давайте с вами разберём пример одной из функций допустим, функция sort(array &$array), которая принимает в качестве параметра массив а на выходе сортирует
array(""); $_get['query'] = str_replace($strainer, "|", $_get['query']); чтобы использовать стрейнер для каждого символа, можно написать функцию: function xss_cleaner($array)
максимальное количество снежинокvar snowmax=40;var snowcolor=new array("#aaaacc","#ddddff","#ccccdd","#f3f3f3","#f0ffff");var snowtype=new array("arial black","arial narrow","times","comic sans ms");var snowletter="*";скорость
    $keys = array(2, 0, 1, 1, 1, 2);     $mod = $number % 100;     $suffix_key = ($mod > 7 && $mod < 20) 2: $keys[min($mod % 10, 5)];     return $suffix[$suffix_key];   }   $array = array("минута",
следующий: foreach($array_or_object as $key => $value) {   операторы } и, наконец, давайте применим все 4 типа циклов в php для перебора массивов: <php   $list = array(5, 2, 3,
поистине универсальны вот пример операций с массивом: <php   $array = [    'a' => 1,    'b' => 2,    'c' => [ 'd',
можно использовать на массивах:   const array = ['мясо', 'мандарины', 'томаты'];   const array_str = jsonstringify(array);   consolelog(array_str);  
  'price',   'book',   array(     'label' => __( 'price' ),     'rewrite' => array( 'slug' => 'price' ),     )
работы с регулярными выражениями в php7 функция называется preg_replace_callback_array() те, кто знаком с функциями preg_replace() и preg_replace_callback(), думаю, уже поняли,
через цикл: <script type="textjavascript">   var array = {'name': 'michael', 'age': '22', 'country': 'russia'}; создаём ассоциативный массив   array["add"] = 15; добавим ещё элемент  
нового метода в объект array, после чего у всех объектов данного типа появится этот метод, прямо во-время исполнения var somearray = [1, 2, 3];
ум - это использование её при пользовательской сортировке: <php   $array = array("php", "functions", "create", "mysql"); создаём массив   usort($array, create_function('$x, $y',
    print_r($routes); результат примерно следующий: array (     [0] => route object         (             [url] => 
гораздо больше переименуем "products" на "books", а "product" на "book" array(   'labels' => array(   'name' => __( 'books' ),   'singular_name' =>
  $screenshot = $api_data['screenshot']['data'];   $screenshot = str_replace(array('_','-'),array('','+'),$screenshot);     отображаем изображение
переменную (true или false), значение по умолчанию которой будет false:<php  function printarray ($arr, $bool = false) {    $str = "";    for ($i = 0; $i < count($arr); $i++)     
$arr_b = [ 'd', 'e', 'g', 'c'];  определяем объединение $uniq = array_unique(array_merge($arr_a,$arr_b));  разность массивов $diff = array_diff($arr_a,$arr_b); 
начнем с того, что, для примера, переопределим встроенный метод push объекта array своим собственным методом, при этом в коде мы сохраним ссылку на оригинальны
     массив для хранения соответствия url => функция     private static $routes = array();           запрещаем создание и копирование статического объекта
(вставлять между тегами <head> и <head>):<script type="textjavascript">   var array = new array(     "imagesjavascriptfoto1jpg",     "imagesjavascriptfoto2jpg",    
их в массив <<php function parse_arguments($argv,$argc) {   $_args = array();  массив разобранных аргументов   $delim = ',';      разделитель нескольких параметров
(вставлять между тегами <head> и <head>):<script type="textjavascript">   var array = new array(     "как",     "",     "создать",     "",
объектам языка свои собственные методы добавляем метод has(arrayelement) в объект array, в результате чего у каждого создаваемого массива появится
системы (нам привычной) в другую (для компьютера) *     $p_x = array();     $p_y = array();     for ($i = 0; $i < count($x); $i++) {       $p_x[$i]
    * сообщение об ошибке     *     abstract function validate() : array;                добавляет сообщение об ошибке в массив
данные из массива $_post array (   [price] => 50   [brand] => nnn ) это заголовки ответа сервера - метаданные потока (stream metadata) array (   [timed_out] =>  
        $stmt = $this->pdo->prepare($query);         $params = array(             "long_url" => $url         );
расширять встроенные типы, такие как array, string, map, set и т д через наследование следующий класс queue расширяет ссылочный тип array синтаксис здесь намного
яркости или hsv цветовые параметры будут установлены в массиве lower_border = nparray([111, 23, 56]) import cv2 import  numpy as np def nothing(x): #  пустая функция 
значений одновременнообщий вид создания массива в javascript такой:var name = new array(value_1, value_2, , value_n);таким образом, переменная с именем "name" содержит в
содержанием: <php   function getrange( $max = 10 ) {    $array = [];    for( $i = 0; $i < $max; $i++ ) {     $array[] = $i;    }    return $array;   }   foreach
заменим на свои названия this theme uses wp_nav_menu() in one location   register_nav_menus( array(     'menu-1' => esc_html__( 'main menu', 'minimal-grid' ),     'custom_menu'
достаточно элегантно - через добавление требуемого метода в прототип массива (arrayprototype) и вызов такого метода ничем не будет отличаться от вызова
  $items = array(); массив для пунктов меню   while (($row = $result_set->fetch_assoc()) != false) $items[$row["id"]] = $row; заполняем массив выборкой из бд   $childrens = array(); массив
использовать эти функции в качестве callback-функций например: <php   $val = array_filter($input, function ($v) { return $v > 2; }); > ключевое слово use опять же, если вы
uploadphp и пропишите следующее: <php   header("content-type: applicationjson");   $uploaded = array();   if(!empty($_files['file']['name'][0])) {    foreach($_files['file']['name']
text() – преобразует ответ в строку arraybuffer() – преобразует ответ в объект arraybuffer blob() – преобразует ответ в объект
массив можно создать просто с помощью [], как в языке javascript, а не писать array() обращаться же к элементам массива можно точно так же, как и к строкам
элементов в массиве равно нулю     $this->assertequals(0, count($stack));     array_push($stack, 'foo'); добавили одним элемент в массив     $this->assertequals('foo',
принимает массив и возвращает ресурс контекста <php   $options = array(    'http' => array(    'method' => "get",    'header' => "accept-language:
wp_enqueue_script( 'my_theme-test', get_template_directory_uri() 'jstestjs', array(), true ); передаются ещё 2 параметра: array()- отвечает за очередность загружаемых скриптов
пример, где нам нужно загрузить файлы на сервер if(isset($_post['file'])) {   if(in_array($file_extension, $allowed_file_extensions)) {    загружаем файл   } else {   
использовать контекст потоков php: <php $context = array(     'http' => array(         'proxy' => 'proxy:8080',
dashboard_modelphp добавим вывод json данных в функции xhrinsert $sth->execute(array(':text' => $text)); $data = array('text' => $text, 'id' => $this->db->lastinsertid()); echo json_encode($data);
$this->model->userlist();   $this->view->render('userindex'); } public function create() {   $data = array();   $data['login'] = $_post['login'];   $data['password'] = md5($_post['password']);
public function delete($id) {   $sth = $this->db->prepare('delete from users where id = :id');   $sth->execute(array(    ':id' => $id   )); } прекрасно! удаление уже работает теперь
в конструкторе, после проверки условия, пропишем следующее: $this->view->js = array('dashboardjsdefaultjs'); а теперь в файле headerphp мы проверим это перед
'delete_intermediate_image_sizes' ); function delete_intermediate_image_sizes( $sizes ){     return array_diff( $sizes, array(         'medium_large',     ) ); }
корневой элемент   $dom->appendchild($root);   $logins = array("user1", "user2", "user3"); логины пользователей   $passwords = array("pass1", "pass2", "pass3"); пароли пользователей  
все числа в массиве let array = [5, 25, 30]; объявляем переменную с массивом из чисел let sum = 0; создадим переменную с нулём arrayforeach( перебор элементов
создаём объект pdata   $dataset->addpoint(array(0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100), "serie1"); загружаем данные графика 1   $dataset->addpoint(array(0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000), "serie2");
dict       object   словарь -> объект list       array    список  -> массив tuple      array    кортеж  -> массив
написания статьи: %02d%02d%04d", $day, $month, $year);   $array = sscanf($str, "дата написания статьи: %02d%02d%04d");   print_r($array);   sscanf($str, "дата написания статьи: %02d%02d%04d",
возвращает уже html-код: <php   protected function replacebbcode($text_post) {     $str_search = array(       "#n#is",       "#[b](+)[b]#is",      
данные *   $userpanel = str_replace(     array(       "%name%",       "%avatar%"     ),     array (       $name,      
нет, то устанавливаем русский   $array = parse_ini_file($lang"ini"); открываем соответствующий языковой файл   echo $array["hello"]; выводим значение языковой
  imagearc($i, 50, 100, 40, 50, 90, 300, $color);   $color = imagecolorallocate($i, 0, 255, 0);   imagepolygon($i, array(10, 20, 120, 250, 190, 290, 100, 290, 10, 20), 4, $color);   header("content-type: imagejpeg");   imagejpeg($i);
создании и переборе массивов в phpсоздать массив в php очень просто:<php  $arr = array(15, 14, true, "ds", -05);  echo $arr[0]"<br >";  echo $arr[3];>здесь мы создали массив,
работать с регулярными выражениями в php: функция preg_match(string pattern, string subject, array matches) - данная функция ищет совпадения в строке subject регулярному выражению
    $signs = array("козерог", "водолей", "рыбы", "овен", "телец", "близнецы", "рак", "лев", "девы", "весы", "скорпион", "стрелец");     $signsstart = array(1=>21, 2=>20,
2000;   var ar_src = new array();   function setbigimageslide(group) {     var group = documentgetelementbyid(group);     var images = groupchildnodes;     var src = new array();    
функции: <php   function xss($data) {     if (is_array($data)) { если это массив       $result = array(); создаём новый массив      
"images"; путь к картинкам   var cats = new array("cat_1jpg", "cat_2jpg", "cat_3jpg"); названия файлов 1-го ротатора   var dogs = new array("dog_1jpg", "dog_2jpg", "dog_3jpg"); названия
переводит русский текст в транслит: <php   function translit($str) {     $rus = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у',
ещё :-d"; комментарий пользователя   $smiles_key = array(":-)", ":-d"); массив с кодами смайлов   $smiles_value = array("smile_1gif", "smile_2gif"); массив с соответствующими
$targetfolder;     $targetfile = rtrim($targetpath,'') '' $_files['filedata']['name'];     $filetypes = array('jpg','jpeg','gif','png'); разрешённые расширения     $fileparts = pathinfo($_files['filedata']['name']);
и приводим строку к нижнему регистру   $logins = array("admin", "user", "nik", "abc"); занятые логины   echo in_array($login, $logins); проверяем наличие переданного логина
русскую библиотеку   $case = new nclnamecaseru(); создаём объект класса nclnamecaseru   $array = $case->q("русаков михаил юрьевич"); получаем массив из 6-ти элементов
<php class template {   private $dir_tmpl; директория с tpl-файлами   private $data = array(); данные для вывода   public function __construct($dir_tmpl) {     $this->dir_tmpl
часть: <php   if ($_post["id"] == "0") echo json_encode(array("0" => "москва", "1" => "санкт-петербург"));   elseif ($_post["id"] == "1") echo json_encode(array("2" => "киев", "3" => "одесса")); >
    return "000 b";       массив обозначений размеров   $s = array('b','kb','mb','gb');       вычисляем  стпень от размера файла
  $evens = $stream -> filter(function($number) {        return $number % 2 == 0;    }) -> toarray();       среднее значение списка   $avg  = $stream -> avg();
null undefined any - любой тип array - массив tuple - кортеж назначение переменной
 преобразуем строку в массив символов, вызывая метод split и передавая ему пустую строку  обязательно надо передать пустую строку let strarray = strsplit('')  проходимся по каждому элементу массива, преобразуем символ в его числовой код 
            if ($this->header) {                 $data = array_combine($this->header, $data);             }              вызываем коллбэк, первый аргумент данные, второй ссылка на объект
    yield* range(start + 1, end); }  вызываем [range(0,10)]  вывод  array(11) [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
    $ip = '258194141';     $country = getcountryname($ip);     if( in_array($country,$black_list) ) {         return "доступ к сайту из вашей страны ($country) ограничен!";
         поиск в подпапках         $files = array_merge($files, search_file_by($dir '' basename($pattern), $flags));     }
  foreach ($details as $property => $value) {      if (is_array($value)) {          $value = implode(', ', $value);
результат запишется в массив let s = 'разбить строку, 1,2,5' let arr = new array(); arr = ssplit(','); все элементы вернулись в виде массива arr[0]
    private function cleaninput($data) {         if (is_array($data)) {             $cleaned = [];             foreach ($data as $key => $value) {
прямо из редактора кода в админке и вставьте внизу файла register_sidebar( array(   'name' => esc_html__( 'мой sidebar', 'my_theme' ),   'id'
используем так (консоль): c:> myscript hello world результат: array (  [0] => c:demopathscriptphp  первый аргумент путь к файлу 
   общедоступный статический метод, принимающий аргументы командной строки и ничего не возвращающий   public static function main(array $strings = $argv ) : void    {     print "someclass";
указываем любые function twentynineteen_setup() { add_theme_support(      'custom-logo', array(         'height' => 180,         'width'
'me');     $request = $request->execute();     $user = $request->getgraphobject()->asarray();    }   } catch(facebookfacebookrequestexception $e) {    если facebook вернул
элемент   $childs = $root->childnodes; получаем список дочерних элементов   $data = array(); набор данных   for ($i = 0; $i < $childs->length; $i++) {     $childs_new = $childs->item($i)->childnodes;
getimagesize($image); получаем размеры и тип изображения (число)     $types = array("", "gif", "jpeg", "png"); массив с типами изображений     $ext = $types[$type];
getimagesize($image); получаем размеры и тип изображения (число)     $types = array("", "gif", "jpeg", "png"); массив с типами изображений     $ext = $types[$type];
цитат и нужно выбрать одну случайную из них и вывести: <php   $quotes = array(); инициализируем пустой массив   $quotes[] = "будьте внимательны к своим
$files = glob($dir"*html"); получаем все html-файлы из директории     $results = array(); создаём массив для результатов поиска     for ($i = 0; $i < count($files);
strtolower($_server["http_accept_language"]), $matches); получаем массив $matches с соответствиями   $langs = array_combine($matches[1], $matches[2]); создаём массив с ключами $matches[1] и значениями $matches[2]
являющиеся картинкой (проверяя расширение) *   function excess($files) {     $result = array();     for ($i = 0; $i < count($files); $i++) {       if ($files[$i] != "" &&
заменяем сущности на амперсанд, если требуется     list($url_part, $qs_part) = array_pad(explode("", $url), 2, ""); разбиваем url на 2 части: до знака и после    
        x -= 2;       }     }     return new array(x, y);   }   function savewh(obj_event) {     var point = getxy(obj_event);    
    * массив со всеми возможными символами в пароле *     $arr = array(       'a', 'b', 'c', 'd', 'e', 'f',       'g', 'h', 'i', 'j', 'k', 'l',
    var life = mathround((endgettime() - startgettime()) (1000 * 60 * 60 * 24));     var suffix = new array("день", "дня", "дней");     var keys = [2, 0, 1, 1, 1, 2];     var mod = life %
удобная, и в 90% случаях её хватит функция называется print_r():<php  $arr = array(3, 0, -1, 24, -2);  print_r($arr);>в результате, вы в удобном виде увидите весь
строковый тип5) boolean - булевский тип данных (только два значения: true или false)5) array - массив6) resource - некий ресурс7) object - объектный типс последними тремя
свойствами могут быть не только тривиальные объекты (строки и числа), но и сложные объекты, такие как array, window, document и даже ваши собственные объекты
которая принимает тоже два параметра: разделитель и массив:<php  $arr = array(15, 10, 1985);  $str = implode("", $arr);  echo $str;>в результате получится строка:
parse_ini_file("settingsini");  print_r($arr);>в результате, вы увидите следующую строку: "array ( [par1] => 10 [par2] => 20 )" как видите, функция parse_ini_file() вернула массив с
окончательный результат давайте разберём 3-й пункт с кодом: <php   $arr = array(5, 15, 1, 10, 2); 5 id вопросов, которые извлекаются из базы   for ($i = 0; $i <
скрипт "loadingphp" в соответствии с этими требованиями: <php   $blacklist = array("php", "phtml", "php3", "php4", "html", "htm");   foreach ($blacklist as $item)     if(preg_match("$item$i",
    curl_setopt($curl, curlopt_returntransfer,true);     $out = curl_exec($curl);     $matches = array();     $country = preg_match_all("страна: (*)i", $out, $matches);     print_r($matches[1][1]);
выполнить в indexphp следующий код: <php   print_r($_get); > то вы увидите вот это: "array ( [view] => article [id] => 1 )" а дальше уже, думаю, понятно, что делать с этими входными
parse_ini_file("shortlinksini"); получаем массив данных из ini-файла   if(isset($_get["r"]) && array_key_exists($_get["r"], $shortlinks)) { если передан правильный get-параметр    
таким образом: $show = $_get['show']; $allowed = ['main', 'card']; $content = in_array($show, $allowed) file_get_contents("content{$show}php") : ''; те мы создаем массив,
переменную сам счетчик, то можно сделать следующее remove_index for element, index in array when element in rightelements index - переменная, содержащая наш счетчик как видите,
данный метод работает только в двойных кавычках перейдем к массивам array = [   1, 2, 3   4, 5, 6   7, 8, 9 ] мы можем переносить все, что угодно
давайте рассмотрим пример: class collection {   protected $items = [];   public function __construct(array $items) {    $this->items = $items;   }   public function count() {    return count($this->items);
случайное значение из массива: $names = ['ivan', 'alexander', 'vasiliy']; echo $names[array_rand($names)]; те любые функции, такие, как эта, были улучшены для получения
    }       return self::$instance;      }   }   class dbreader extends arrayobject   {     use singleton;   }   class filereader   {     use singleton;
кода wp_enqueue_script( 'my-fb', get_template_directory_uri() 'fancyboxjqueryfancyboxpackjs', array('jquery') ); wp_enqueue_style( 'my-fb-css', get_template_directory_uri() 'fancyboxjqueryfancyboxcss'
игнорировать второй элемент массива следующим образом:  [a,, c] = returnarray();   consolelog (а); 10   consolelog (с); 30 таким образом в этой статье
вроде этого: ischrome(); вернет true, если это браузер chrome, и false в ином случае isarray(); массив true : false isipod(); ipod true : false ismac(); mac os true : false islinux(); linux
ассоциативный массив, который передается третим параметром $ip = "127001"; $opt = array(   'flags' => 'filter_flag_ipv4' ); $result = filter_var($ip, filter_validate_ip, $opt); echo
так <php   function salt_function() {    return "mysaltstringfrom22symbols";  }   $opt = array('salt' => salt_function(), 'cost' => 11);   $hash = password_hash("mystring", password_default,
строку на массив по разделителю в виде перехода на новую строку   $new_likes = array(); массив лайков с новыми данными   for ($i = 0; $i < count($likes); $i++) {    
session::get('role'); if($logged == true || $role != 'owner') { удалите строчку $this->view->js = array('dashboardjsdefaultjs'); и все остальное, кроме метода index в методе index
возвращает имя аргумента   $rp->getposition(); возвращает позицию аргумента   $rp->isarray(); ожидает ли аргумент массив в качестве значения   $rp->iscallable();
  $sth = $this->db->prepare("select id from users where login = :login and password = md5(:password)");   $sth->execute(array(    ':login' => $_post['login'],    ':password' => $_post['password']
mysqli('localhost', 'root', '', 'comments');   $mysqli->query("set names utf8");   $r = array();   $result = $mysqli->query("select * from comm where id > $count");   while($row = $result->fetch_assoc())
сколько захотите, до тех пор, пока они имеют один и тот же класс var elems = arrayprototypeslicecall(documentqueryselectorall('js-switch')); elemsforeach(function(html) {   var switchery
ассоциативный массив в js – это разновидность объекта чем ассоциативный массив отличается от обычного массива разгадка кроется в его названии,
для лучшего понимания, что такое массивы, сделаем вид, что их не существует, обойдемся пока без них однако для проведения эксперимента, надо