我有这个功能:
function read(x) {
console.log("You typed: " + x);
}
如果我在控制台中运行read("Hello")
,则会得到:
您键入的内容:您好;
但是如果我运行read(Hello)
,我会得到:
未捕获的ReferenceError:未定义Hello
我以这种方式修改了功能:
function read(x) {
console.log("You typed: " + x.toString());
}
但没有成功。
因此,无论用户如何输入,我都希望将函数参数视为字符串。我该怎么做?
答案 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"
它将正常工作。