Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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 如果此语句正常工作,我需要做什么?_Javascript_Arguments - Fatal编程技术网

Javascript 如果此语句正常工作,我需要做什么?

Javascript 如果此语句正常工作,我需要做什么?,javascript,arguments,Javascript,Arguments,我应该完成如下所示的“爬升”功能。在函数爬升中使用内置的局部变量参数 这就是该函数要做的: 如果参数[0]处有字符串,但参数[1]不正确,请返回“On belay?” 如果参数[0]处有字符串,参数[1]处为true, 返回“攀登!” 否则,返回“让我们在攀爬之前设置好保护绳。” 必须通过以下测试: should be a function that does not have built-in parameters should return "Let's set up the belay r

我应该完成如下所示的“爬升”功能。在函数爬升中使用内置的局部变量参数

这就是该函数要做的:

如果参数[0]处有字符串,但参数[1]不正确,请返回“On belay?”

如果参数[0]处有字符串,参数[1]处为true, 返回“攀登!”

否则,返回“让我们在攀爬之前设置好保护绳。”

必须通过以下测试:

should be a function that does not have built-in parameters
should return "Let's set up the belay rope before we climb." if called as climb()
should return "Climbing!" if called with climb("Benny", true)
should return "Climbing!" if called with climb("any string here", true)
should return "On belay?" if called with climb("Benny", false)
should return "On belay?" if called with climb("any string here")
以下是提供的功能:

function climb(){

  //CODE HERE - DO NOT TOUCH THE CODE ABOVE!

}
这是我正在尝试的,但它不起作用:

function climb(){

  //CODE HERE - DO NOT TOUCH THE CODE ABOVE!

  if(arguments[0]){
    if(arguments[1]==false){
      return "On belay?";
    } else { 
      return "Climbing!";
    }
  } else {
    return "Let's set up the belay rope before we climb.";
  }
}

arguments[0]==arguments[0]
总是
true
,因为您正在检查它是否等于自身。另外,要检查某个元素是否为真,只需执行
if(element)
您的代码应该如下所示:

if(arguments[0] != '') {
  if(arguments[1]){
    return "On belay?";
   }
   else {
    return "Climbing";
   }

} else {
  return "Let's set up the belay rope before we climb."
}

如果我理解正确,您的函数需要基于局部变量而不是输入参数工作

尽管如此,你的比较没有多大意义。 例如,
arguments[0]==arguments[0]
在与自身进行比较时应始终返回true

试试像这样的东西

//check that arg[0] has a value (assuming it is a string)
 if(arguments[0]){
   if(arguments[1]==false){
     return "On belay?";
   } else { //arguments[1] == false is implicit here
     return "Climbing";
   }
 } else {
   return "Let's set up the belay rope before we climb.";
 }
还要注意
之间的差异=(不相等)和
==(不等于值或不等于类型)。

如果(参数[0]==参数[0])
将永远为真,无论参数[0]
是什么

要检查
参数[0]
是否有字符串,可以使用
typeof
length

if(typeof arguments[0] === "string" && arguments[0]+"".length){
    //runs this, if arguments[0] is a string with data in it.
}
这将检查它是否是字符串,以及它是否包含任何内容

要检查
参数[1]
是否为false,您可以使用
if(!arguments[1])
,但如果
参数[1]
未定义的
或空字符串,则仍将运行true。 我建议使用更具可读性和安全性的方法

if(arguments[1]===false){
    //runs this, if arguments[1] is false
}

“内置局部变量参数”这个短语毫无意义。如果它们是局部变量,它们就不是参数。引用的代码中没有任何内容可以测试文本中描述的条件。。。?分配任务通常不是武断的;您的讲师、教程或课程将涵盖必要的主题,使您能够做到这一点。我建议你复习你的课程材料、课堂笔记等,然后再做一遍。如果你遇到了一个特定的问题,彻底地研究它,如果你仍然困在那里,就发布你的代码和问题的描述。人们会很乐意帮忙的。我当然希望争论[0]本身就是平等的。@epascarello-通常会的。如果是
NaN
,则不会。当然,上面是
,所以…我们不再使用
参数。我们使用它的唯一原因是用于具有可变参数数的“可变”函数,但现在我们使用扩展参数(
…args
)来实现这一点。为什么你的老师要求你做一个包含
参数的作业,而不仅仅是使用命名参数?我建议找一个新老师,一个新班级,或者可能找一所新大学。如果要使用
参数
,我强烈建议您了解它的含义。这不是你设定的,因为你正在做;它表示传递给函数的参数。我很遗憾必须是“那个家伙”,但如果
参数[0]
恰好是
NaN
,则比较将失败。您是对的,我假设不会,因为OP在beginning@Pointy-LOL,我只是。@Sacha这只返回最后一条语句。另外两个可能不起作用,因为您从未设置
参数[0]
参数[1]
谢谢。这几乎奏效了。它只是没有通过我要求的测试。如果使用爬升(“任何字符串”)调用,它还需要返回“On belay?”。是否可以进行一些小更改以使其正常工作?我以为您不需要函数的任何参数?或者,如果只有第一个论点而没有第二个论点,您是否希望返回“on belay”?我不确定我是否正确理解了您的要求。您是对的,我无法获得该功能的参数,但我要通过这些测试:应该是一个没有内置参数的功能-应该返回“让我们在爬山之前设置好保护绳。”如果称为GRIMP()-如果用GRIMP调用,则应返回“GRIMPING!”(Benny,true)-如果用GRIMP调用,则应返回“GRIMPING!”(此处任意字符串,true)-如果用GRIMP调用,则应返回“On BERAY?”(Benny,false)-如果用GRIMP调用,则应返回“On BERAY?”(此处任意字符串)-请将您的初始问题与您刚才编写的内容进行对比,因为它们相互矛盾:问题:我将使用内置局部变量参数编写函数。注释:应该是一个没有内置参数的函数用正确的参数编辑你的问题,我想这是第二个。