Javascript 如何将所有函数参数视为字符串?
我有这个功能:Javascript 如何将所有函数参数视为字符串?,javascript,string,parameter-passing,Javascript,String,Parameter Passing,我有这个功能: function read(x) { console.log("You typed: " + x); } 如果我在控制台中运行read(“Hello”),我会得到: 你输入:你好 但是如果我运行read(Hello),我会得到: 未捕获引用错误:未定义Hello 我这样修改了函数: function read(x) { console.log("You typed: " + x.toString()); } 但是没有成功 因此,我想将函数参数视为字符串,而不管用户如何
function read(x) {
console.log("You typed: " + x);
}
如果我在控制台中运行read(“Hello”)
,我会得到:
你输入:你好
但是如果我运行read(Hello)
,我会得到:
未捕获引用错误:未定义Hello
我这样修改了函数:
function read(x) {
console.log("You typed: " + x.toString());
}
但是没有成功
因此,我想将函数参数视为字符串,而不管用户如何输入它。我怎样才能做到这一点呢?你不能。语言语法就是这样设计的,因此如果您编写
read(Hello)
,它将查找名为Hello
的变量。这不存在,因此存在错误
如果要传递字符串,则需要引用它(或将其分配给变量,然后传递变量)。这是没有办法的。你不能。语言语法就是这样设计的,因此如果您编写
read(Hello)
,它将查找名为Hello
的变量。这不存在,因此存在错误
如果要传递字符串,则需要引用它(或将其分配给变量,然后传递变量)。这是没有办法的。当用户输入字符串时,它将作为字符串传递。例如:
var str = "Hello";
read(str); // will print "You typed: Hello"
换句话说,当你输入一个字符串时,比如说通过控制台,你不必把它放在引号里。但是,当您在代码中为变量设置一个字符串值时,您必须将它放在引号中
但是您试图用这个read(Hello)
来传递一个名为Hello
的变量,这个变量在这个上下文中根本不存在。要修复它,您可以编写以下内容:
var Hello = "Hello";
read(Hello); // will print "You typed: Hello"
当用户输入字符串时,它将作为字符串传递。例如:
var str = "Hello";
read(str); // will print "You typed: Hello"
换句话说,当你输入一个字符串时,比如说通过控制台,你不必把它放在引号里。但是,当您在代码中为变量设置一个字符串值时,您必须将它放在引号中
但是您试图用这个read(Hello)
来传递一个名为Hello
的变量,这个变量在这个上下文中根本不存在。要修复它,您可以编写以下内容:
var Hello = "Hello";
read(Hello); // will print "You typed: Hello"
在深入编程之前,请先阅读一些基本的编码 当您调用
时,请阅读以下内容:
read("Hello");
值被传递给read
函数。然而,在打电话时,例如:
read(Hello);
这是使用变量Hello
的值调用read
函数,并且从不声明Hello
引用错误:引用不存在的变量时,对象表示错误
值可以是字符串、数字、布尔值和数组、对象
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
变量:在应用程序中用作值的符号名。变量名(称为标识符)符合某些规则。在深入编程之前,请阅读一些基本的编码
当您调用时,请阅读以下内容:
read("Hello");
值被传递给read
函数。然而,在打电话时,例如:
read(Hello);
这是使用变量Hello
的值调用read
函数,并且从不声明Hello
引用错误:引用不存在的变量时,对象表示错误
值可以是字符串、数字、布尔值和数组、对象
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
变量:在应用程序中用作值的符号名。变量名(称为标识符)符合某些规则。“这是不可能的。”-根本不能称之为“绕过”。它只是一个变量。我的意思是,没有办法引用字符串文字。我想他的问题是他不能区分变量和值。“没有办法。”-它根本不能被称为“绕过”。它只是一个变量。我的意思是,无法引用字符串文字。我想他的问题是他无法区分变量和值。Nvm,sugar.js不是我想象的那样。可能有一些预处理器可以满足您的需求,但同样,为了那一点点好处,做了太多的工作;它只是在JS中不可用。在Clojure中这很简单:(defmacro read[s]`(println~(strs))
,(read hello)
打印hello
,但这是因为Clojure有宏支持。Nvm,sugar.js不是我想象的那样。可能有一些预处理器可以满足您的需求,但同样,为了那一点点好处,做了太多的工作;它只是在JS中不可用。在Clojure中这很简单:(defmacro read[s]`(println~(strs))
,(read hello)
打印hello
,但这是因为Clojure支持宏。