Я делаю калькулятор, где вы пишете текст. Для тестирования кода я просто составил случайное число и несколько «ifs». Here's код:Не могу вызвать функцию в JavaScript
var res=0, operator, pattern, num1, num2
myText= "2~3+2"
pattern= /([\+\-\*\~\V/])/;
var nums= myText.split(pattern);
function makeCount() {
num1= Number(num1);
num2= Number(num2);
if (operator=== "~") {
num1= Math.pow(num1,num2);
nums.splice(i-1, 3, num1);
}
if (operator=== "+") {
num1= num1+num2;
nums.splice(i-1, 3, num1);
}
}
function SrtLoop() { //checks all the numbers
for (var i=0; i<nums.length; i++) {
if (nums[i]=== "~") {
num1=nums[i-1];
num2=nums[i+1];
operator="~";
makeCount();
}
if (nums[i]=== "+") {
num1= nums[i-1];
num2= nums[i+1];
operator="+";
makeCount();
}
}
}
SrtLoop();
res=num1;
Раньше я просто поставил для цикла, без функции, но я понял, после того как программа проверила операторы, это не будет проверять снова. Поэтому я подумал, что вставьте цикл for внутри функции, я бы назвал ее один раз, и после создания счета он снова вызовет функцию цикла for. Оказывается, что без функции, в конце, res = 10 (ожидается) с функцией, не вызывая ее, res = undefined (ожидается), но вызов функции уничтожает весь код и ничего не отображается на экране.
Примечание: Я новичок здесь, и извините, если мой английский плохо
Вы пробовали отладки? – ElGavilan
[Узнайте, как отлаживать JavaScript] (https://developers.google.com/web/tools/chrome-devtools/debug/). –
@Alex: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#(Bitwise_NOT) ... но я не вижу, как это имеет отношение к проблеме OP? –