97

我正在用 JavaScript 制作一个简单的游戏,但在故事中我需要它来说出玩家的名字。所以我到目前为止是:

var name = prompt("what is your name?");

console.log("story" name "story);

我该怎么做第二行?或者还有另一种方法可以做到这一点。控制台中是否可以有 2console.log();对 1 行?

4

11 回答 11

104

然后用于+组合字符串:

console.log("story " + name + " story");
于 2013-05-17T03:28:47.473 回答
89

console.log接受多个参数,所以只需使用:

console.log("story", name, "story");

如果name是 anobject或 an,array则使用多个参数比串联更好。如果将objector连接array到字符串中,则只需记录类型而不是变量的内容。

但是如果name只是一个原始类型,那么多个参数的工作方式与连接相同。

于 2013-05-17T03:29:09.387 回答
79

您可以使用另一种控制台方法:

let name = prompt("what is your name?");
console.log(`story ${name} story`);
于 2016-07-26T05:56:15.447 回答
52

有几种方法可以消除字符串中的变量。

方法一:

console.log("story", name, "story");

好处:如果 name 是一个 JSON 对象,它不会被打印为"story" [object Object] "story"

方法二:

console.log("story " + name + " story");

方法3:如前所述使用ES6时

console.log(`story ${name} story`);

好处:不需要额外的 , 或 +

方法四:

console.log('story %s story',name);

好处:字符串变得更具可读性。

于 2017-06-14T12:09:04.217 回答
20

使用 ES6 时,您还可以这样做:

var name = prompt("what is your name?");
console.log(`story ${name} story`);

注意:您需要使用反引号 `` 而不是 "" 或 '' 这样做。

于 2017-03-23T14:33:58.820 回答
6

您可以传递多个参数来记录:

console.log("story", name, "story");
于 2013-05-17T03:29:34.680 回答
2

这取决于你想要什么。

console.log("story "+name+" story")字符串连接在一起并打印出来。对我来说,我使用它是因为它更容易看到发生了什么。

Usingconsole.log("story",name,"story")类似于串联但是,它似乎运行如下:

 var text = ["story", name, "story"];
 console.log(text.join(" "));

这是将数组中的所有项目推到一起,用空格分隔:.join(" ")

于 2015-02-01T04:42:01.307 回答
1

正如前面的答案中提到的那样,两者都console.log("story" + name + "story")可以正常工作。console.log("story", name, "story")

我仍然会建议有一个习惯console.log("story", name, "story"),因为,如果尝试打印对象内容,如 json 对象,"story" + objectVariable + "story"则会将其转换为字符串。

这将有类似的输出:"story" [object Object] "story"

只是一个好习惯。

于 2017-01-25T12:09:05.543 回答
0

您还可以使用 printf 格式的参数样式。它至少在 Chrome、Firefox/Firebug 和 node.js 中可用。

var name = prompt("what is your name?");

console.log("story %s story", name);

它还支持 %d 格式化数字

于 2018-11-01T21:16:06.120 回答
-3

您可以使用反斜杠将故事和玩家姓名包含在一行中。

var name=prompt("你叫什么名字?"); 控制台.log(“故事”\名称\“故事”);

于 2018-05-17T08:59:35.203 回答