JavaScript初学者语法错误

时间:2016-03-30 02:12:34

标签: javascript loops if-statement

我用普通代码编写了这个程序但是我不太了解Javascript以使所有语法正确。我是一个编程的开始,请帮助我纠正我的代码。它目前根本没有运行。我们仍在进行循环,这真的给了我麻烦。这是一个大学课程。 (我知道这格式不正确,这就是我要求帮助的原因)

function main() {
alert("Welcome to the program");
var fatGrams = getFatGrams(fatGrams);
var calories = getCalories(fatGrams,calories);
var percentage = caloriesPercentage(fatGrams,calories); 
displayPercentage(percentage); 
}

function getFatGrams(fatGrams) { 
fatGrams = prompt("Enter the number of fat grams in your food item");
while(fatGrams < 0){
  alert("Error, the fat grams cannot be less than 0.");
  fatGrams = prompt("Enter the new number of fat grams.");
 }
return fatGrams;
}

function getCalories(fatGrams,calories) {
calories = prompt("Enter the number of calories in your food item.");
while (calories < 9 || calories > (fatGrams * 9)){
  alert("Error, the calories cannot be less than 9 or exceed the fat    grams * 9");
  calories = prompt("Enter the new number of calories");
}  
return calories;
}

function caloriesPercentage(fatGrams,calories){
percentage = (fatGrams * 9) / calories;
alert("The amount of calories that come from fat is, " + percentage);
return percentage;
}

function displayPercentage(percentage){
  if(percentage < 0.3){
  alert("The food is low in fat.");
 }
  else{
 alert("The food is not too low in fat.");
 }
}

main(); 
alert("End of program"); 

3 个答案:

答案 0 :(得分:2)

代码中的错误:

  1. 调用函数不需要std::is_same关键字。在调用函数之前删除关键字function,只需将函数调用为function

  2. 您没有将参数传递给getFatGrams(fatGrams);。将其更改为function caloriesPercentage

  3. caloriesPercentage(fatGrams,calories);循环的表达式应作为while包含在paranthesis中。

  4. while(fatGrams < 0)应写为OR

  5. 使用||连接2个字符串(或字符串和变量)

    +
  6. "The amount of calories that come from fat is, " + percentage 的表达式也应作为while包含在paranthesis中,不需要if(percentage < 0.3)then的大括号应在if之前关闭。

    else
  7. if(percentage < 0.3){ alert("The food is low in fat."); } else { alert("The food is not too low in fat."); } 的值指定为变量

    prompt
  8. 您的最终代码应如下所示:

    fatGrams = prompt("Enter the new number of fat grams.");
    

答案 1 :(得分:2)

欢迎来到精彩的编程世界!

看起来您已经掌握了基础知识,让我解释一下您使用JavaScript时遇到的一些问题。我会使用一些大词(许多其他经验丰富的开发人员也会这样习惯!)。

功能声明与功能调用

我在您的main()函数中看到的第一个问题是关于何时在JavaScript中使用function关键字的混淆。您只需要在声明功能时使用function,或者换句话说,当您想要创建新功能时使用function。&#34;当您声明某些内容时,您正在创建它,并且在JavaScript中function addTwo( number ) { return number + 2; } 关键字是您声明(也称为创建)函数的方式。以下是创建&#34;命名函数&#34;的示例。在javascript。

var addThree = function( number ) {
  return number + 3;
};

这是一个&#34;命名函数&#34;宣言。另外,您还可以创建函数&#34;表达式&#34; (这将被称为&#34;函数表达式&#34;)。这看起来像这样

function

请注意,在这两种情况下,我们都会使用var four = addTwo( 2 ); var five = addThree( 2 ); 关键字创建一个函数。

当您想要使用某个功能时,您可以调用&#34;它。这也被称为&#34;呼叫&#34;一个功能。要调用(也就是调用)一个函数,你只需在函数名后面加上括号,传入任何参数。函数调用对命名函数和函数表达式的作用相同。所以我们可以像上面那样调用上面的两个函数

function

简单地说,只使用( argument, otherArg )关键字来创建函数。要调用或使用函数,只需将if放在函数名的末尾。

分支声明

接下来我看到的是你错过了一些括号! JavaScript具有C样式语法,因此您需要在else ifswitchif .. else语句的表达式周围加上括号。我列出的那些关键字就是我们所说的分支语句。它们允许您根据某些true或false值有条件地执行代码,而不是允许您根据true或false值重复代码的循环语句。 JavaScript中if ( number % 2 === 0 ) { number *= 2; } else if ( number % 3 === 0 ) { number *= 3; } else { number += 5; } 分支语句的结构如下所示。

if

对于else ifelse,您需要提供一个&#34;表达式&#34;分支。如果ifelse if表达式均未评估为true,则始终执行else语句。 else条款不是必需的,因此,如果您的if ( needsCleanup ) { doCleanup(); } 区块中没有任何代码,则可以将其删除!在代码

中有一个if语句就可以了
else if

当然可以使用else子句而不是else子句,else始终是可选的。但是请记住,()子句永远不会有表达式,因此您不应该在简单的else后写for

循环语句

循环是一个很大的概念,需要一段时间才能掌握,所以不要感到沮丧或气馁!在JavaScript中,我们有whiledo whileif个循环。就像do while语句一样,循环语句需要一个表达式,但在这种情况下,他们需要知道何时停止循环。我不打算覆盖for循环,因为它们很少使用,并且刚刚开始时可能会让人感到困惑。简单地说,循环语句说:&#34;继续执行此代码块直到表达式为假。&#34;我发现使用var sum = 0; for ( var i = 1 ; i <= 10 ; i++ ) { sum += i; } // sum will be 55 // i will be 11 循环来说明这一点最简单。 For循环是一种特定次数运行代码块的好方法。让我们看一个示例,它使用for循环将所有数字从1添加到10。

for

;循环有三个由var i = 1分隔的表达式。第一个是初始化,仅在循环开始之前执行(while部分)。第二个是在每次迭代之前检查的条件。最后一个是在每个循环执行结束时执行的递增操作。如果我们将这个for循环重新写为var sum = 0; var i = 1; while ( i <= 10 ) { sum += i; i++; } 看起来就像这样......

var i = 1

所以你可以看到i <= 10在循环开始之前发生。 {}在每次循环运行它的主体(i++中的部分)之前发生。并且i <= 10在循环结束时发生,然后检查+是否应该继续循环。

字符串连接

字符串连接是将两个字符串放在一起的过程。在JavaScript中,1 + 1运算符作为加法'hello' + ' world'和字符串连接var salutation = 'Hello'; var name = 'Kylie'; var greeting = salutation + ', ' + name; // greeting will be "Hello, Kylie" 执行双重任务。所以当你想把两个字符串组合在一起时,你只需添加它们!如果字符串是变量,那么你只需要添加&#34;他们在一起......

{{1}}

我希望能解决一些问题,如果您有任何疑问,请告诉我们!

答案 2 :(得分:1)

因为这是一个课程,我不会给你答案,而是指出问题。

在Javascript中调用函数并返回值:

var myvalue = myFunction();

你的主人有function...,需要解决这个问题。

有些函数只返回值,因此调用它们不需要参数(如上所述),其他函数需要输入的参数。

提示返回一个值,您需要捕获该值:

var myinputvalue = prompt("enter value");

参考:https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt

使用whileif等时,需要将条件包装在括号中。

while (mything < 0){参考; https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/if...elsehttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/while

条件中的

“OR”由||表示,AND由&&

表示

注意:您可以使用一些在线工具来解决一些问题,例如将代码粘贴到http://jshint.com/中,它会告诉您许多语法问题。