Всё просто, скрип складывает сумму цифр, если она больше 9, то складывает заного. Всё работает до включения рекурсивной функции summaryOfNumbers(summary). Потанцевал с бубном, но ничего работать не стало. Подскажите?) HTML: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var x = 1234 console.log(summaryOfNumbers(x)) function summaryOfNumbers(num) { var num = String(num) var array = num.split('') var summary = 0 for (var i = 0; i < array.length; i++) { summary += Number(array[i]) } if (summary <= 9) { return summary } else { summaryOfNumbers(summary) } } </script> </body> </html>
Автор, на будущее, не заигрывай с использованием разделителя строки вместо точки с запятой. Это грабельки, которые очень больно бьют по лбу.
А чё так тоже можно было? ))) я всегда думал что это syntax error и накрытие всего js на странице )))
Нет. И никогда им не было. Более того, есть отдельная каста яваскриптеров, больных точкасзапятоюфобией. Страшное заболевание, скажу я тебе. Они считают, что точка с запятой - это блажь для слабаков, программист должен ПРЕВОЗМОГАТЬ, а машины созданы для того, чтобы люди им служили. Эдакое сообщество элитных гемороеносцев. Вроде бы у всех геморрой, но вроде бы все им гордятся. Но на деле, нужно всегда помнить о том, что переносы в JS могут обрабатываться и как символ конца команды. Не везде их можно безболезненно ляпать.
Это не ошибка, это усложнение себе жизни. Точка с запятой сразу в глаза бросается. Интерпретатору JS на нее мб и плевать в большинстве случаев, а вот разработчику она помогает. Чем меньше вероятность неопределенного поведения, чем выше удобство восприятия кода, тем быстрее идет работа, тем меньше багов.
Я когда js изучал год и делал всё без точки с запятой, то потом с php замучился, не понятно из-за чего ошибка, если всё правильно.