Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获的语法错误:意外标记';如果'&;未捕获引用错误:未定义berechnung_Javascript_Html - Fatal编程技术网

Javascript 未捕获的语法错误:意外标记';如果'&;未捕获引用错误:未定义berechnung

Javascript 未捕获的语法错误:意外标记';如果'&;未捕获引用错误:未定义berechnung,javascript,html,Javascript,Html,我不知道问题出在哪里,我收到两条错误消息: 未捕获的语法错误:意外标记“if” 未捕获引用错误:未定义berechnung 你知道有什么问题吗?我检查了100次if函数和按钮的参考,但没有解决方案^^ 谢谢大家! HTML Javascript <script> function berechnung() { var groesse = parseInt(document.getElementById('groesse2').value); var gewicht

我不知道问题出在哪里,我收到两条错误消息:

  • 未捕获的语法错误:意外标记“if”
  • 未捕获引用错误:未定义berechnung
  • 你知道有什么问题吗?我检查了100次if函数和按钮的参考,但没有解决方案^^

    谢谢大家!

    HTML

    Javascript

    <script>
    
    function berechnung() {
        var groesse = parseInt(document.getElementById('groesse2').value);
        var gewicht = parseInt(document.getElementById('gewicht2').value);
        var alter = parseInt(document.getElementById('gewicht2').value);
        var geschlecht = parseInt(document.getElementById('geschlecht2').value);
        var geschl1 = (geschlecht === '2') ? 655.1 : 66.47 ;
        var geschl2 = (geschlecht === '2') ? 9.6 : 13.7 ;
        var geschl3 = (geschlecht === '2') ? 1.8 : 5 ;
        var geschl4 = (geschlecht === '2') ? 4.7 : 6.8 ;
        var ziele = parseInt(document.getElementById('zielziel2').value);
    
        var schlaf = parseInt(document.getElementById('akti1').value);
        var sitzen = parseInt(document.getElementById('akti2').value);
        var gehen1 = parseInt(document.getElementById('akti3').value);
        var gehen2 = parseInt(document.getElementById('akti4').value);
        var sport3 = parseInt(document.getElementById('akti5').value);
    
        var grundumsatzm = Math.round(66.47 + (13.7 * gewicht) + (5 * groesse) - (6.8 * alter));
        var grundumsatzw = Math.round(655.1 + (9.6 * gewicht) + (1.8 * groesse) - (4.7 * alter));
        var totalstunden = (schlaf + sitzen + gehen1 + gehen2 + sport3);
        var dakt = ((0.9 + 1.2 + 2.2 + 3.3 + 6.6) / 5) ;
    
        // I'm getting the Uncaught SyntaxError: Unexpected token 'if' on this "if":    
        var grundumsatz = if (geschlecht === 1) { 
        Math.round(66.47 + (13.7 * gewicht) + (5 * groesse) - (6.8 * alter));
        } else {
        Math.round(655.1 + (9.6 * gewicht) + (1.8 * groesse) - (4.7 * alter)); 
        };
    
        var verbrauch = Math.round(grundumsatz * dakt);
    
        var zielzufuhr = (verbrauch * ziele);
    
        document.getElementById("GU1").innerHTML = grundumsatz;
        document.getElementById("TH1").innerHTML = totalstunden;
        document.getElementById("AK1").innerHTML = dakt;
        document.getElementById("KV1").innerHTML = verbrauch;
        document.getElementById("ZZ1").innerHTML = zielzufuhr;
    
    
        }
    
    </script>
    
    
    函数berechung(){
    var groesse=parseInt(document.getElementById('groess2').value);
    var gewicht=parseInt(document.getElementById('gewicht2').value);
    var alter=parseInt(document.getElementById('gewicht2').value);
    var geschlecht=parseInt(document.getElementById('geschlecht2').value);
    var geschl1=(geschlecht=='2')?655.1:66.47;
    var geschl2=(geschlecht=='2')?9.6:13.7;
    var geschl3=(geschlecht=='2')?1.8:5;
    var geschl4=(geschlecht=='2')?4.7:6.8;
    var ziele=parseInt(document.getElementById('zielziel2').value);
    var schlaf=parseInt(document.getElementById('akti1').value);
    var sitzen=parseInt(document.getElementById('akti2').value);
    var gehen1=parseInt(document.getElementById('akti3').value);
    var gehen2=parseInt(document.getElementById('akti4').value);
    var sport3=parseInt(document.getElementById('akti5').value);
    var grundumsatzm=数学圆(66.47+(13.7*gewicht)+(5*groesse)-(6.8*alter));
    var grundumsatzw=数学圆(655.1+(9.6*gewicht)+(1.8*groesse)-(4.7*alter));
    var totalstunden=(schlaf+sitzen+gehen1+gehen2+sport3);
    var dakt=((0.9+1.2+2.2+3.3+6.6)/5);
    //我得到了未捕获的SyntaxError:此“if”上的意外标记“if”:
    var grundumsatz=if(geschlecht==1){
    数学四舍五入(66.47+(13.7*gewicht)+(5*groesse)-(6.8*alter));
    }否则{
    数学四舍五入(655.1+(9.6*gewicht)+(1.8*groesse)-(4.7*alter));
    };
    var verbrauch=数学圆(grundumsatz*dakt);
    var zielzufuhr=(verbrauch*ziele);
    document.getElementById(“GU1”).innerHTML=grundumsatz;
    document.getElementById(“TH1”).innerHTML=totalstunden;
    document.getElementById(“AK1”).innerHTML=dakt;
    document.getElementById(“KV1”).innerHTML=verbrauch;
    document.getElementById(“ZZ1”).innerHTML=zielzufuhr;
    }
    
    您不能将
    if
    语句放在需要表达式的地方。您可以使用条件(也称为“第三”)表达式

    var grundumsatz = geschlecht === 1 ?
        Math.round(66.47 + (13.7 * gewicht) + (5 * groesse) - (6.8 * alter)) :
        Math.round(655.1 + (9.6 * gewicht) + (1.8 * groesse) - (4.7 * alter)); 
    

    赋值运算符的右侧不能有if语句

    这里有一个简单的解决方案

    let grundumsatz = null;
    if (geschlecht === 1) { 
        grundumsatz = Math.round(66.47 + (13.7 * gewicht) + (5 * groesse) - (6.8 * alter));
    } else {
        grundumsatz = Math.round(655.1 + (9.6 * gewicht) + (1.8 * groesse) - (4.7 * alter)); 
    };
    

    您可以看到要设置的变量在if/else之前声明,然后根据需要分配它

    巴尔马的回答很好,我还想给你两件事:

  • 使用
    const
    ,因为这些东西实际上是const,而不是底层域中可变状态的表示(购物车内容、网络连接状态缓存)(有关更多详细信息,请参阅)
  • 将分支提升到命名常量以使代码更易于理解(“无幻数”)

  • 不能在赋值表达式的右侧放置
    if
    语句。错误告诉你的正是这个。正如波蒂所说,等号后面没有“if语句”。另外,在javascript中将两个单词定义为变量时,请尝试开始使用camelcase,这样更易于阅读,尽管老实说,我不知道这些变量中的语言是什么意思
    var grundumsatz = geschlecht === 1 ?
        Math.round(66.47 + (13.7 * gewicht) + (5 * groesse) - (6.8 * alter)) :
        Math.round(655.1 + (9.6 * gewicht) + (1.8 * groesse) - (4.7 * alter)); 
    
    let grundumsatz = null;
    if (geschlecht === 1) { 
        grundumsatz = Math.round(66.47 + (13.7 * gewicht) + (5 * groesse) - (6.8 * alter));
    } else {
        grundumsatz = Math.round(655.1 + (9.6 * gewicht) + (1.8 * groesse) - (4.7 * alter)); 
    };
    
    const someNamedValue = () =>  Math.round(66.47 + (13.7 * gewicht) + (5 * groesse) - (6.8 * alter))
    const someOtherNamedValue = () => Math.round(655.1 + (9.6 * gewicht) + (1.8 * groesse) - (4.7 * alter))
    
    const grundumsatz = geschlecht === 1 ?
        someNamedValue() :
        someOtherNamedValue();