如何将所有函数参数都视为字符串?

时间:2018-11-02 12:16:40

标签: javascript string parameter-passing

我有这个功能:

function read(x) {
  console.log("You typed: " + x);
}

如果我在控制台中运行read("Hello"),则会得到:

  

您键入的内容:您好;

但是如果我运行read(Hello),我会得到:

  

未捕获的ReferenceError:未定义Hello

我以这种方式修改了功能:

function read(x) {
  console.log("You typed: " + x.toString());
}

但没有成功。

因此,无论用户如何输入,我都希望将函数参数视为字符串。我该怎么做?

3 个答案:

答案 0 :(得分:3)

不能。语言语法只是以此方式设计的,因此,如果您编写read(Hello),它将查找名为Hello的变量。这个不存在,因此会出错。

如果要传递字符串,则需要将其引号(或将其分配给变量,然后传递变量)。没办法解决。

答案 1 :(得分:1)

在深入编程之前,请先阅读一些编码基础知识。

当您像这样呼叫read时:

read("Hello");

值已传递给read函数。但是像这样调用:

read(Hello);

这正在调用read函数,其值为变量Hello,并且从未声明Hello

ReferenceError :当引用不存在的变量时,ReferenceError对象表示错误。

值可以是字符串,数字,布尔值和数组,对象。

read(5);
read(true);
read('a');

这些都是值。

var a = 55;
var b = 'Hello';
var c = false;

read(a); // Passing value of a variable
read(b); // Passing value of b variable
read(c); // Passing value of c variable

变量:您将variables用作应用程序中值的符号名称。变量的名称(称为标识符)符合某些规则。

答案 2 :(得分:0)

当用户输入字符串时,它将作为字符串传递。例如:

var str = "Hello";
read(str); // will print "You typed: Hello"

换句话说,当您输入字符串时,例如通过控制台,您不必将其放在引号中。但是,当您在代码中为变量设置字符串值时,确实会将其用引号引起来。

但是您要对此read(Hello)进行的操作是传递一个名为Hello的变量,该变量甚至在此上下文中都不存在。要解决此问题,您可以编写以下代码:

var Hello = "Hello";
read(Hello); // will print "You typed: Hello"

它将正常工作。