Can´;t在JavaScript中调用函数
我正在做一个计算器,你可以在上面输入文字。为了测试代码,我只做了一个随机计数和几个“如果”。代码如下:Can´;t在JavaScript中调用函数,javascript,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
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;
var res=0,运算符,模式,num1,num2
myText=“2~3+2”
模式=/([\+-\*\~\V/]);
var nums=myText.split(模式);
函数makeCount(){
num1=数量(num1);
num2=数量(num2);
如果(运算符==“~”){
num1=数学功率(num1,num2);
接头(i-1,3,num1);
}
如果(运算符==“+”){
num1=num1+num2;
接头(i-1,3,num1);
}
}
函数SrtLoop(){//检查所有数字
对于(var i=0;i您的
makeCount
函数没有任何对i
的引用。您没有将i
声明为全局变量(尽管这不是一个很好的做法)。您也没有将其作为参数传递给makeCount
函数
var res=0, operator, pattern, num1, num2
myText= "2~3+2"
pattern= /([\+\-\*\~\V/])/;
var nums= myText.split(pattern);
function makeCount(i) {
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(i);
}
if (nums[i]=== "+") {
num1= nums[i-1];
num2= nums[i+1];
operator="+";
makeCount(i);
}
}
}
SrtLoop();
res=num1;
var res=0,运算符,模式,num1,num2
myText=“2~3+2”
模式=/([\+-\*\~\V/]);
var nums=myText.split(模式);
函数makeCount(i){
num1=数量(num1);
num2=数量(num2);
如果(运算符==“~”){
num1=数学功率(num1,num2);
接头(i-1,3,num1);
}
如果(运算符==“+”){
num1=num1+num2;
接头(i-1,3,num1);
}
}
函数SrtLoop(){//检查所有数字
对于(var i=0;i变量
i
在函数makeCount()
中未定义。修改如下:
function makeCount(i) {
//Your code
}
makeCount(i);
按如下方式修改调用:
function makeCount(i) {
//Your code
}
makeCount(i);
你试过调试吗?@Alex:…但我不知道这和OP的问题有什么关系?