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
<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();