А это вообще как?!
Извините за неинформативное название темы, но я реально ничего не понимаю.
function m(d, n, c1){ return Math.floor(n * с1 - 0.1 * d); } function s(d, n, c1, t){ let m1 = m(d, n, c1); return -20000*m1 + m1*t; } alert(s(1, 0, 0, 4)); Результат выполнения (точнее НЕвыполнения) этого кода: ошибка VM1695:2 Uncaught ReferenceError: с1 is not defined at m (<anonymous>:2:25) at s (<anonymous>:5:12) at <anonymous>:1:7 (браузер Edge). Цэ шо вообще деется? |
Как это часто бывает, решение нашлось через секунду после опубликования поста:)
Дело в названии переменной. Видимо переменная c1 уже где-то используется (может быть в jquery, может быть ещё где). Если переименовать её, баг исчезает. Правда, это всё равно очень странно. Даже если изменить переменную c1 на arg_c, баг всё равно остаётся. А если на preved - исчезает:) Мистика. |
Ставлю палку колбасы что у тебя была в одном месте русская с. И когда периименовывал переменную ты её не удалял а дописывал.)
|
Код:
$ echo 'function m(d, n, c1){ |
Цитата:
|
jaroslav.tavgen, в том то и дело что читает. У тебя задана переменная английская, а использована переменная русская. Это две разных переменных. Потому и та что использована - "Нот дефайнд".
WebStorm подсвечивает если используется разные языки, для eslint вроде тоже есть правило, чтоб находил такие опечатки. Ну и если ты будешь использовать нормальные, говорящие, имена переменных, вместо однобуквеного мусора, то шансы на такое нарваться заметно снижаются. |
Цитата:
let это = 1, такие=2, переменные=3; console.log(это + такие + переменные) |
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 13:58. |