2014-07-23 119 views
-1

我新的Javascript和我目前正在做的事情Codecademy网站this question。当试图运行代码时,我不断收到错误:“SyntaxError:意外的令牌”。任何人都可以解释为什么?功能与if/else语句

这里是我的代码:

var sleepCheck = function(numHours); 
if (function(numHours) >= 8) { 
    return "You're getting planety of sleep! Maybe even too much"; 
} else { 
    return "Get some more shut eye!"; 
} 
sleepCheck(10); 
sleepCheck(5); 
sleepCheck(8); 
+1

他们有一个qa论坛。我会说这是一个更合适的请寻求帮助。 http://www.codecademy.com/forums/javascript-beginner-en-6LzGd/2 – asawyer

回答

4

你的代码需要重构的一点点正确执行。在这种情况下,你想与numHours作为参数传递给函数定义函数sleepCheck if语句之外:

function sleepCheck(numHours) { 
    if (numHours >= 8) { 
     return "You're getting planety of sleep! Maybe even too much"; 
    } else { 
     return "Get some more shut eye!"; 
    } 
} 

console.log(sleepCheck(10)); 
console.log(sleepCheck(5)); 
console.log(sleepCheck(8)); 

职能应当花括号{ ... }包裹。这就是浏览器的JavaScript解析器如何知道函数在哪里开始以及它在哪里结束。这一步至关重要,因为括号包围了调用函数时将执行的代码。

DEMO:JSFiddle

在行动中看到的演示使用F12钥匙打开浏览器的控制台。消息将出现在那里。如果您还不熟悉控制台或对此不太舒服,则可以用console.log代替alert。但这通常不被推荐。我只是建议这个,因为你说你是初学者。你应该成为控制台的粉丝,所有的荣耀。学会使用控制台,因为控制台将成为您所有调试需求的生命线。

1

你应该写一个名为sleepCheck函数,接受一个名为NUMHOURS参数,并在代码中你没有这样做。

做这样的事情:

function sleepCheck(numHours) { 
    if (numHours >= 8) 
    . 
    . 
    . 
} 
1

的语法是不正确的。您没有正确定义函数声明sleepCheck。函数本身应该包含它的所有内容,并且任何内容都应该包含在大括号内。你有一个与if语句混合的函数。

应该

function sleepCheck(numHours){ 
    if (numHours >= 8) { 
     return "You're getting planety of sleep! Maybe even too much"; 
    } else { 
     return "Get some more shut eye!"; 
    } 
} 

还有,记得做一些与返回值,只需调用这个函数不会给你一个结果,除非你获取返回值:

console.log(sleepCheck(8)); 
0

我认为你打电话功能不正确,因此希望你工作

function sleepCheck(numHours) { 
     if (numHours >= 8) { 
      return "You're getting ....."; 
     } else { 
      return "Get some more ....."; 
     } 
    } 

    console.log(sleepCheck(8));....