[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]

Файл: 200px-JavaScript-logo.png -(6 KB, 200x200, 200px-JavaScript-logo.png)
6 No.7318  
Я знаю, это не очень хороший тред, но посоветуйте мне книжку по JavaScript.
Мне нравится, когда такие книги больше похожи на справочник, но если там будут кое-какие примеры, этика использования приемов, это будет просто супер. Можно на английском. Я собираюсь приобрести бумажную версию, так что желательно чтобы я смог достать её в книжных Москвы. Алсо, я туговат, и хочу чтобы разжевано было всё.
>> No.7319  
Немаловажная деталь: конечная цель - геймдев, не веб!
>> No.7320  
>>7319
> js
> не веб
как ты себе это представляешь?
>> No.7322  
>>7320 Unity 3D же.
>> No.7323  
js ужасный язык, если бы он не был безальтернативным в браузере, о нем бы и не вспоминал никто.
>> No.7324  
>>7323 Аргументируй @ предлагай.
>> No.7325  
>>7318
Возьми орейлевскую книгу с носорогом.
>>7319
>геймдев
>JS
А вот это ты зря, js создавался для веба, и использовать его для чего-то другого крайне нерационально. После таких необдуманных попыток и появляются мнения типа >>7323. Сам по себе язык великолепен, я бы с удовольствием на нем писал где придется, но его архитектура заточена именно для дополнения хтмл-страничек и использование в других местах обычно приводит к плачевному результату.
>> No.7330  
>>7325
>Сам по себе язык великолепен
признайся, ты пехепешник?
>> No.7331  
Файл: javascript-the-good-parts-the-definitive-guide.jpg -(52 KB, 600x450, javascript-the-good-parts-the-definitive-guide.jpg)
52
>>7318
Выбирай.
>> No.7335  
>>7330
Когда-то давно этот php видел, лет так восемь назад.
Яваскрипт действительно хорош, если шаблон не порвать от того, что реализаций ооп бывает больше одного вида. В языке есть все что нужно, чтобы писать красивый код на самом деле (те 3 функции, которых не хватает, пишутся за 2 минуты). Можно писать как в ооп, так и в функциональном стиле. Идеальный вариант без крайностей тоже вполне приемлем. Язык не мешает и ничем не ограничивает, что главное.
>> No.7336  
>>7335
Тяжёлый синтаксис с очень маленьким количеством сахара. Как ты уже написал нужно писать свои функции для банальных вещей. Объединение словарей, классов и объектов очень красиво в теории, а на практике это грабли. Неявное преобразования типов. Каллбаки всюду каллбаки.
Я скажу просто чтобы понимать питонью программу без ошибок, нужно знать о 1.5 граблей которые нужно обходить. А как наступишь на очередные грабли на js, так и кричать начинают js`исты читай спецификацию на язык. В этом весь js нельзя понять, но можно выучить.
>> No.7337  
>>7318

ОП, не слушай ты их. Нравится язык — пиши. Самый лучший учебник по JS для тебя сейчас — javascript.ru, там есть как учебник (смотри в колонке справа), так и справочник (поиск), плюс форум. Можно ещё посмотреть http://learn.javascript.ru/ — только что нашёл, раньше не видел, поэтому по этому разделу сайта ничего сказать не могу. Сайт больше ориентирован, конечно, на браузерный JavaScript, но не думаю, что выученные приёмы для браузера так уж подпортят качество твоего кода в обозримом будущем : 3
>> No.7338  
На самом деле мне все равно, на чем писать. Двенадцать лет назад, ещё учась в школе, я писал на C++ (ну, это можно уже и не вспоминать), позже имел дело с AS2 и AS3, и изучал его по референсу и чужому коду. Я вовсе не программист, сам рисую концепт-арты, модели, ригаю их, (так что забот типа хватает) но что касается программирования - я просто не знаю как подступиться. Мне кажется, я имею некое представление о "хорошем коде", и стараюсь находить решения без костылей, но все равно, _увлекательный мир программирования_ для меня полон загадок. В такой ситуации лучше было бы нанять программиста, само собой, но денег нет, искать добровольцев или предлагать гибридную модель оплаты не по мне.

С другой стороны, я не ищу чего попроще, просто хотелось бы понять с чего начать.

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

А как насчет Boo?
>> No.7339  
>>7338
>А как насчет Boo?
Фигня, бери Malbolge.

Тебе для чего язык-то, болезный? Пошерсти тематические форумы и выбери наиболее популярный на них язык -- тем самым у тебя будет у кого попросить помощи и они будут в контексте.
>> No.7340  
>>7335
>Яваскрипт действительно хорош
Нет, он отвратителен. Нет модулей, слабая динамическая типизация, нет целых чисел, нет поддержки многопоточности, сломанная проверка на равенство, отсутствие неймспейсов наконец. Да нихрена в нем нет. Да и не могло быть в языке, созданном за неделю. Точнее слизанном с лиспа с натягиванием на него си подобного синтаксиса в угоду менеджменту (быдлу-с скобочки тяжелы-с).
Но это все бестолку. Бараны, в глаза не видевшие ничего более продуманного будут пролжать упираться и жрать кактус. Даже вон, на серверсайд утащили. Хипстота ебаная.
Дай дураку стеклянный хуй, он и хуй разобъет и руки порежет. Но лыбиться все равно не перестанет. Так и тут.
>> No.7341  
>>7337
>но не думаю, что выученные приёмы для браузера так уж подпортят качество твоего кода в обозримом будущем

А что, он где то помимо браузеров и винды встречается?
>> No.7343  
>>7340
Ты перечислил те архитектурные пробелмы, которые свойственны яваскрипту потому что он не создавался как язык общего назначения, а был расширением возможностей статических хтмл страничек. Никто и не говорил, что он хорош в использовании для любых нужд. Я не понимаю, откуда возникает такое желание, сравнивать все языки, как будто они применимы для одних и тех же целей.
Алсо, да, эмулировать можно и модули и неймспейсы, язык этого не запрещает.
>> No.7346  
>>7336
>Каллбаки
>Кал-бака.
Хорошее ругательство, однако. На будущее: [kolbek]
>> No.7347  
Есть же специальная книжка http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockford/dp/0596517742
Есть еще http://eloquentjavascript.net/
>> No.7360  
Что-то мне не очень нравится, что вы тут устроили. Заказал лучшие части, тред ещё повисит ~день, на случай если кому-то захочется посоветовать что-нибудь об ООП для нубов. Всем спасибо ITT.
>> No.7412  
Во избежание развития semicolon cancer посоветую после изучения основ загуглить sass или less. Уязвленному отсутствием сахара кстати тоже.
>> No.11699  
Не хочу создавать новый тред.

Нужна помощь в яваскрипте, сам я крайне неопытен в яве. Вот что мне нужно: какая-либо форма, через которую можно было бы редактировать разметку домашней страницы прямо из браузера, загуглить не смог.
>> No.11700  
>>11699
Яваскрипт и Ява — два совсем разных языка.
> форма, через которую можно было бы редактировать разметку домашней страницы прямо из браузера
https://codeanywhere.net/, например. Но зачем тебе? Если не нужно, чтобы изменения сохранялись на сервере, а требуется просто на лету отредактировать и посмотреть, что получится, то поставь Firebug.
>> No.11703  
>>7340
Яваскрипт - отличный язык. Не надо расписывать в стопицот строк компилятору, о чем ты дальше будешь писать софтину, просто берешь - и пишешь. Максимум свободы, минимум печатной машинки. То что надо, для творческой работы. На чистовик-то конечно финальный продукт лучше переписать на каком-нибудь геморройном, но зато не интерпретируемом языке, но именно для разработки я ничего пока лучше не встречал. Си, Ява, Паскаль, Бейсик - разные вариации одного и того же звездеца, чтобы внести одно небольшое изменение, надо в двадцати местах это отметить компилятору, чтобы он не заругался потом.
>> No.11704  
>>11703
> Яваскрипт - отличный язык.
Мне хватило одного короткого знакомства с ним во время попытки написать юзерскрипт. Так вот, люди которые так реализовали побитовые операции, просто не могли создать хороший язык. Не помню, что ещё меня там поразило, но этот язык не зря занимает одну нишу с пыхом. Уродская динамическая типизация + синтаксис и фичи из семидесятых (жс появился в девяностые). Такое чувство, будто его авторы CS и дизайном языков вообще не интересовались.
>> No.11705  
Файл: 1390479367907.jpg -(488 KB, 494x700, 1390479367907.jpg)
488
>>11704

>Такое чувство, будто его авторы CS и дизайном языков вообще не интересовались.

Они просто хотели сделать лисп без скобок забыв о том что скобки - неотъемлемая его часть. Но в итоге и лисп не получился, и профита от скобок не осталось привет^Wпока макросы!. И сдохнуть бы этому недоязыку мучительной смертью, да браузерное легаси не дало. А потом его нашли хипстеры, вытащили из задницы, обмазали поверх всякими нод.жс и подняли на свои знамена. Хотя как и прочие хипстерские языки, в js'е нет абсолютно ничего не то что концептуально нового, даже годно реализованного старого. Разве что более менее удобный асинхронный API у ноды, но это скорее минус остальных чем плюс жаваскрипта.
>> No.11706  
>>11705
Все так, я только добавлю, что жс появился из-за задания "быстро-быстро, за неделю, добавь мне яп в браузер, ты же программист". Эйк (кажется, не помню уже) был не дурак и пояснил, что за неделю можно сделать только сраный лисп (без типов, без неймспейсов, без еще 100500 кошерных вещей). Менеджеры сказали: "ок, только сраные скобки выпили". С тех пор в жс даже целых чисел нет. Спасибо Netscape за это.
>> No.11708  
>>11704
Не знаю, не сталкивался ни с одним более удобным и гибким языком. Даже пехопе с его префиксованием переменных раздражает. В остальных языках декларации деклараций и прочие плюшки. Даже константный массив из разнотипных элементов хрен создашь с полпинка. А тут пазязя,[0,"test",function(a,b){return a+b}] и всё.
>> No.11710  
>>11708
>константный массив из разнотипных элементов
но зачем?!
>> No.11711  
>>11708
Процитирую:

> Да, в общем, как обычно. Дисбаланс возможностей и ограничений в сторону возможностей. Жуткий дисбаланс.

> Для человека, пишущего в одиночку прототипчик программы - нормально. Для человека, пишущего не в одиночку, или пишущего библиотеку - неприемлимо, потому что другие пользователи (соотв. юзеры библиотеки) обязательно будут её абьюзить всеми способами, которые допускает язык, а эта часть программы (соотв. библиотека) должна продолжать нормально работать. Для человека, пишущего в одиночку и что-то большое - тоже, считай, не годится, потому что как я буду мыслить через год и какое извращение буду считать нормальным, предсказать сейчас невозможно.

> Вот и получается, что писать большие проекты на подобном языке могут только люди с закостеневшим мышлением, которые и через год и через десять будут думать примерно так же, как сейчас.
>> No.11747  
Если есть опыт коддинга в целом, но переходишь на JS то крайне рекомендую не столько книгу сколько вот эту статью: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript
>> No.11773  
>>11710
Классы в школе не проходят.
>> No.11801  
http://jsbooks.revolunet.com/
>> No.18677  
Файл: .png -(55 KB, 141x200, .png)
55
Привет стив. Я тут потихоньку хочу вкатится в javascript и уже начинаю по чуть-чуть писать код. ИТТ буду кидать код, который не работает и я не могу найти в нем, где же я накосячил. Ну и заодно буду вопросы задавать по сабжу.
>> No.18679  
Файл: .png -(1945 KB, 1200x1700, .png)
1945
Вот значит кусок кода у меня:
var myArray = [];

function ints(myArray) {

if (myArray < 0) {

return myArray;

} else {

for (var i = 0; myArray >= i; i = i + 1) {

myArray.push[i];

`

}

return myArray;

}

}



Задача у него такая. Есть у нас функция, которая принимает аргумент и из этого начинает заполнять в созданный уже заранее одномерный массив. И заполнять она будет целыми числами его. Их количество равняется номеру аргумента. Но на выходе я получил следующую ошибку:

TypeError: Cannot read property '0' of undefined

Line 7

myArray.push[i];

^


Stack:


ints Line 7 - "myArray.push[i];"

testInts (Line 26:19)

`
>> No.18681  
Файл: ReLIFE.png -(132 KB, 520x245, ReLIFE.png)
132
Похоже на то, что ты собрался по одному имени «myArray» обращаться и к аргументу функции «ints» изнутри этой функции, и к ранее созданному вне её массиву.

Так не получится. Изнутри функции имя аргумента заслонит внешнее имя.

Например, если ты вызвал «ints(17)», то у тебя «myArray.push[i]» будет «17.push[0]» на первом шаге. Это и вызывает ошибку «Cannot read property '0' of undefined», потому что значение «17.push» не определено и никакого свойства 0 (через «17.push[0]» достигаемого) иметь не может.

Также сообщаю, что конструкция «имяМассива.push(значение)» записывается не через квадратные скобки (как обращение к свойству), а через круглые (как вызов функции — в данном случае, вызов метода массива).
>> No.18784  
Файл: .jpg -(254 KB, 1920x1080, .jpg)
254
>>18681
> Похоже на то, что ты собрался по одному имени «myArray» обращаться и к аргументу функции «ints» изнутри этой функции, и к ранее созданному вне её массиву.
> Так не получится. Изнутри функции имя аргумента заслонит внешнее имя.
А не подскажешь, как тогда в такой ситуации можно поступить? А то я как-то совсем запутался.
Получается параметр функции это тоже в каком-то смысле переменная?
> Также сообщаю, что конструкция «имяМассива.push(значение)» записывается не через квадратные скобки (как обращение к свойству), а через круглые (как вызов функции — в данном случае, вызов метода массива).
Чет не заметил. И правда.
>> No.18786  
> буду кидать код
Зачем же так колхозно-то? Полно ведь сервисов для этих целей.
>> No.18790  
>>18786
Да понял-понял. Больше так не буду. Я не знал что тут такие проблемы с отображением кода.
>> No.18794  
Файл: Конный арбалетчик.png -(103 KB, 600x640, Конный арбалетчик.png)
103
>>18784

> Получается параметр функции это тоже в каком-то смысле переменная?

Да.

> А не подскажешь, как тогда в такой ситуации можно поступить? А то я как-то совсем запутался.

Просто дай параметру другое имя.
>> No.19011  
Файл: Hanako yandere.jpg -(97 KB, 400x626, Hanako yandere.jpg)
97
>>18790

> Я не знал что тут такие проблемы с отображением кода.

А нѣтъ никаких особенных проблем с ним.

Просто достаточно одного обратного апострофа в начале кода (содержащего сколько угодно строк) и ещё одного в конце кода.

Выглядит так (на примере приведённого выше некорректного кода):

var myArray = [];


function ints(myArray) {
if (myArray < 0) {
return myArray;
} else {
for (var i = 0; myArray >= i; i = i + 1) {
myArray.push[i];
}
return myArray;
}
}

>> No.19215  
Файл: Chūnibyō demo Koi ga Shitai - Guess I&#039;ve go.png -(1054 KB, 1280x720, Chūnibyō demo Koi ga Shitai - Guess I&#039;ve go.png)
1054
Это бамп для того, чтобы реплика >>18679 отсеклась в архив и перестала вызывать горизонтальную полосу прокрутки во всём /dev/.

Месяц я терпел эту полосу, но на второй месяц задалбывает.
>> No.19216  
Файл: 1505889015007.jpg -(89 KB, 1280x720, 1505889015007.jpg)
89
>>19215
Когда нечего написать по теме треда, надо использовать sage.
>> No.19226  
Файл: Code Geass Ep02.png -(703 KB, 1280x720, Code Geass Ep02.png)
703
>>19216

Ах да.
>> No.19311  
Почему эта функцию не хочет делать заглавным первый символ в строке?
https://pastebin.com/gTJ5JjLR

Неужели метод .toUpperCase() не способен работать со строкой, где только есть один символ?
>> No.19313  
>>19311
toUpperCase() возвращает новую строку, а не изменяет существующую, и вообще в JS строки относятся к примитивным типам, что значит, что они всегда передаются по значению, а не по ссылке. В отличие от массива, строки не изменяются и с ними нельзя сделать так:
> var a = ['в', 'а', 'с', 'я'];
> a[0] = 'В';
> a // ['В', 'а', 'с', 'я']
Строка:
> var a = 'вася';
> a[0] // "в" - доступ по индексу работает как и в массиве
> a[0] = 'В';
> a // "вася" - нифига не изменилось
Все, что надо сделать в том примере это присвоить переменной firstLetter новое значение, возвращенное функцией toUpperCase():
> var firstLetter = str.charAt(0);
> firstLetter = firstLetter.toUpperCase();
И еще учи матчасть, прочитай хоть что-нибудь, все твои вопросы подробно разжевываются в первой главе любого учебника. Начинать можешь отсюда: https://www.w3schools.com/js/default.asp , https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript , https://webref.ru/dev/learn-javascript
>> No.19317  
>>19313
> toUpperCase() возвращает новую строку, а не изменяет существующую, и вообще в JS строки относятся к примитивным типам, что значит, что они всегда передаются по значению, а не по ссылке.
Про это я вкурсе.
> > var firstLetter = str.charAt(0);
> > firstLetter = firstLetter.toUpperCase();
Не втянулся еще просто.
> И еще учи матчасть, прочитай хоть что-нибудь, все твои вопросы подробно разжевываются в первой главе любого учебника. Начинать можешь отсюда: https://www.w3schools.com/js/default.asp , https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript , https://webref.ru/dev/learn-javascript
Спасибо конечно за ссылки, но я уже читаю по learn.javascript.ru
>> No.19319  
>>19313
> и вообще в JS строки относятся к примитивным типам, что значит, что они всегда передаются по значению, а не по ссылке.
Как раз таки передаются они всегда по ссылке, а по значению только сравниваются.
>> No.19345  
Я сделал функцию, которая определяет, есть ли определенное свойство в объекте, но оно его не видел в функции. Пишет постоянно undefined. Почему?
var shedule = {};

shedule.name = "vasiliy";

function checkParametr(parametr) {

if (shedule.parametr === undefined) {

return true;

}

else {

return false;

}

}

alert(shedule.name);

alert(checkParametr(name));

>> No.19347  
Файл: -(0 KB, x)
>>19345

При вызове «checkParametr(name)» в функцию «checkParametr» пытается передаться значение несуществующей переменной «name», которая-то и undefined.

Напрашивающимся выходом из этой ситуации является переписывание функции «checkParametr» таким способом, чтобы она принимала строковое значение.

Кроме того, идентификатор «undefined» не является зарезервированным словом, так что кто-нибудь может создать переменную с таким именем, поэтому на будущее надёжнее не сравнение с undefined напрямую, а сравнение строки «'undefined'» с результатом операции typeof.

С учётом вышеизложенного код принимает такой вид:

var shedule = {};

shedule.name = "vasiliy";

function checkParametr(paramName) {
return typeof shedule[paramName] === 'undefined';
}

alert(shedule.name);
alert(checkParametr('name'));

>> No.19348  
>>19345
1. Твой «checkParameter()» уже есть в языке и называется «Object.hasOwnProperty()» https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty
2. Ты передаешь в функцию необъявленную переменную «name»
3. Функция «checkParamter» у тебя проверяет, имеет ли свойство «parameter» объекта «shedule» значение undefined, она не проверяет ни что-либо еще, переданное ей в аргументы.
4. Аргумент «parameter» в функции ни разу не используется.
5. Ошибочно подразумевается, что «shedule.parametr» вернет «shedule.name», но для доступа к свойствам объекта по ключу из переменной должен использоваться другой синтаксис, через квадратные скобки. См. пост выше.
6. Если условие внутри if выполняется, то функция вернет true, когда свойства нет и false, если нет. Контринтуитивно.
7. Оператор сравнения уже возвращает булево значение, нет необходимости писать if ... else, если все, что оно делает, это возвращает то же самое, что и внутри скобок после if.
8. checkParameter() может проверять только объект «shedule», следовало бы сделать функцию более универсальной, чтобы она могла проверять любой объект, добавив еще один аргумент.
9. Все это не имеет смысла т.к. см. п. 1.
>> No.19360  
Дано:
  • фиксированный урл на неподконтрольном домене, например нулевая страница чужой борды
  • регулярное выражение, определяющее нечто, что хочется поискать на этой странице, например все посты, содержащие слово "ОВОЩИ" в верхнем регистре
Задача:
Записать в JS-переменную список матчей этого регэкспа с заданной страницей
>> No.19363  
>>19360
https://pastebin.com/k2KCzfTa
>> No.19364  
>>19363
Что-то матчер ничего не находит. Такое ощущение, что ответ пустой. См. https://jsfiddle.net/cama387x/5/

Что я делаю не так?
>> No.19365  
Файл: -(0 KB, x)
На сáмомъ дѣлѣ такія штуки не работаютъ во браузерѣ.

В конкретной форме https://jsfiddle.net/cama387x/5/ запрос отклоняется браузером по причине, в документе https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content указанной (смешанное активное содержимое), то есть действует запрет вызова HTTPS-сайтами содержимого HTTP-сайтов.

Если адрес http://iichan.hk/b на https://iichan.hk/b переменить, то адрес будет отклонён по другой причине: XMLHttpRequest не работает с одного сайта на другой в том случае, когда на запрашиваемом сайте (на Ычане, в данном случае) не настроены заголовки CORS (способом, в документе https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS указанным), потому что по умолчанию считается, что сайт (Ычан) не разрешал обращаться к себе через XMLHttpRequest снаружи.
>> No.19366  
Решить проблему >>19360 можно, однако же, в рамках серверного JavaScript (Node.js).

Шаг 0: ставим Node.js (не только движок Node.js, но и прилагающийся по умолчанию менеджер пакетов npm).

Шаг 1: в некотором пустом тестовом каталоге ставим пакет https://www.npmjs.com/package/request командой «npm install request».

Шаг 2: запускаем REPL движка Node.js командой «node».

Шаг 3: в REPL вводим код «void require('request').get({ uri: 'https://iichan.hk/b'; }, (err, res) => console.log(res.body.includes('ОВОЩИ')))».

Шаг 4: видим, что в консоль вывелось значение «false», то есть слóва «ОВОЩИ» на странице https://iichan.hk/b в настоящее время нѣтъ.
>> No.19368  
Движок 410чана, оформляя https://iichan.hk/b как гиперссылку с прилипшим к ней последующим апострофом, вставил в код >>19366 лишнюю точку с запятой перед закрывающей фигурной скобкой; предлагаю игнорировать её.

На всякий случай повторяю тот же код, обрамлённый обратными апострофами (чтобы движок 410чана воспринял его как код) и снабжённый дополнительными отступами (для красоты) и обработкою ошибок (примитивною, через «throw»):

void require('request').get(

{ uri: 'https://iichan.hk/b' },
(err, res) => {
if( err ) throw err;
console.log( res.body.includes('ОВОЩИ') );
}
);

>> No.19369  
Файл: -(0 KB, x)
Соответственно, если вокруг кода >>19368 сочинить вебсервер (на основе http://expressjs.com/ или другого подходящего движка), отвечающий с CORS-заголовками, то через него и во браузере можно будет читать Ычан, а иначе барьеры >>19365 помешают.
>> No.19370  
>>19366
Следующий логичный вопрос: есть ли поддержка node.js или другого серверного кода на github.io и аналогичных площадках?
>> No.19371  
>>19370
Нет, только jekyll и html. Но с бордами, у которых есть api, и браузерный код будет работать.
>> No.19373  
Файл: изображение.png -(10 KB, 389x285, изображение.png)
10
Запилил функцию, которая достает строку из свойства объекта и добавляет в конец строку-аргумент, если ее там нет. Только почему-то она не хочет работать. А именно, она стопается на этапе условия "if".
>> No.19374  
>>19373
Для начала, не нужно писать велосипед, когда есть https://developer.mozilla.org/ru/docs/Web/API/Element/classList
По коду, в строке
> tempClassName.split(' ');
Допущена та же ошибка, что была описана в >>19313
String.spit() возвращает массив, а не превращает строку в массив и не присваивает переменной, хранящей эту строку новое значение. То, что alert(tempClassName) выдает значение obj.className, а не массив ["open", "menu"], не насторожило?
Ну а далее со строкой работают как с массивом, естественно у строки нет методов push и join.
Советую заиметь привычку использовать const вместо var, чтобы не возникало желания переиспользовать переменные для хранения разных типов и не подразумевать ошибочно, что неизменяемые типы должны изменяться.
https://jsfiddle.net/cgbzmk7u/1/
>> No.19375  
>>19370

На странице https://www.heroku.com/pricing предлагают бесплатно до 1000 дино×часов в месяц на 512 мегабайтах памяти и с засыпанием через полчаса неактивности. (Больше и бессоннее — за денежку.)

Можно поискать и найти ещё другие хостинги. Я сообщил только о первом пришедшем на ум.
>> No.19376  
Разумѣется, отвѣтъ >>19375 может дополнительно быть расширен упоминанием о том, что для Node.js не обязательно искать спецхостинг, так как можно вписать запуск сервера в автозагрузку у любого VPS, у любого VDS, да даже у домашнего компьютера с выделенным IP-адресом.
>> No.19380  
>>19374
> Для начала, не нужно писать велосипед, когда есть https://developer.mozilla.org/ru/docs/Web/API/Element/classList
Да, я до них еще не дошел просто до того. Просто я специально не заглядываю наперед в методах, потому что хочу сделать велосипед из дерева. Ибо так я себе как бы делаю задачу тяжелее, а значит могу развивать мозг. Это как с книгами. Чтобы иметь хоть какую-то креативность, нужно читать книги, но слишком много читать - это вредно,так как все уже поднесено разжеванным и думать не надо. Что-то меня не в ту сторону понесло
> Допущена та же ошибка, что была описана в >>19313
> String.spit() возвращает массив, а не превращает строку в массив и не присваивает переменной, хранящей эту строку новое значение. То, что alert(tempClassName) выдает значение obj.className, а не массив ["open", "menu"], не насторожило?
Ой, я по привычке. Почему-то до сих пор на практике строки воспринимаю как массив. Не знаю, как выработать противоположную привычку.
> Советую заиметь привычку использовать const вместо var, чтобы не возникало желания переиспользовать переменные для хранения разных типов и не подразумевать ошибочно, что неизменяемые типы должны изменяться.
А вот тут детальнее. Что за const? Никогда о ней не слыхал.
>> No.19381  
>>19380
const это как var, только const. Вместо переменной будет константа. На практике именно изменяемые переменные нужны довольно редко. Ознакомиться со всеми этими вещами можно в виде нескучных уроков: https://youtu.be/2iLVFyYwyRA
Еще по всем приведенным примерам кода видно очень вольное использование return:
> return alert("Данный класс уже существует")
Вопрос: что вернет эта функция в данном случае? Что она должна возвращать и зачем?
Кроме того, научись пользоваться консолью браузера и отладчиком, кажется весь твой инструментарий сейчас ограничен alert().
>> No.24849  
Файл: 5512_Orange_Hartpfy.png -(19 KB, 128x121, 5512_Orange_Hartpfy.png)
19
Посоветуйте годный гайд по ascii рогаликом на чистом canvas js без всяких сторонних либ.
ЗЫ: нигде такого не нашел, а самому додуматся тяжело
>> No.25508  
>>7318
https://github.com/azat-io/you-dont-know-js-ru
>> No.26058  
Файл: irlain.jpg -(63 KB, 480x640, irlain.jpg)
63
Вечер добрый!
В общем, у меня есть жабаскрипт код и .json файл который жабаскрип код использует чтобы достать оттуда параметр "translations" и его подпараметры 'из матрицы 'rus', 'deu' , etc. При запуске программы, она просит пользователя ввести один из ключей типо 'rus' и опираясь на это выводит названия стран на русском языке.
Мне нужно убрать интеракцию и передавать ключ 'rus' через терминал, типо "node main.js rus".
Может кто помочь пожалуйста?
Оставляю ссылочку на гитхаб для доп информации.
https://github.com/TheRadioDept/technical-question
>> No.26059  
Файл: 2b.jpg -(30 KB, 550x600, 2b.jpg)
30
Я разобрался в проблеме, оказалось проще чем я думал. Всем добра!



[ d ] [ b / cu / dev ] [ r ] [ a / ts ] [ ci ] [ gnx / int ] [ misc ] [ dev / stat ]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог] [Главная]