如何向console.log添加变量?


81

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

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

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

我如何做第二行?或有另一种方式我可以做到这一点。console.log();控制台中是否可以有2合1线路?


您是否只是想将字符串连接在一起?“第二行”是什么意思?
cogsmos

^ cogsmos,现在无关紧要,我的问题已得到解答
Bradley McInerney

很高兴你想出来了。在JavaScript中,+可用于算术运算,也可用于将两个字符串连接在一起(也称为串联)。请看这里了解更多详细信息:w3schools.com/js/js_operators.asp
cogsmos

Answers:


84

然后使用+组合字符串:

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

75

console.log 需要多个参数,因此只需使用:

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

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

但是,如果name只是原始类型,则多个参数的作用与串联相同。


19
或者console.log('story %s story',name);
穆罕默德·乌默尔

1
次要的事情,但是如果您处于不太常规的设置(例如Parse的Cloud Code)中,发送数组或使用%s不起作用..因此,您必须进行串联。
德里克·卢卡斯

@MuhammadUmer太好了,我认为那只是Python的事情。在Python中,这%s是连接字符串的最佳方法,因为您不需要先更改变量类型。我想知道JS中是否相同?
JasTonAChair

59

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

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

4
模板字符串很棒。但是只要有人使用ES6。因为在示例中使用了“ var”(当然可以是ES6),但不要认为我们可以在这里假设……
Therebelcoder

39

有几种方法可以将字符串中的变量合并。

方法1:

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

好处:如果名称是JSON对象,则不会将其打印为 "story" [object Object] "story"

方法2:

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

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

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

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

方法4:

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

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


@egemen freemarker与它有什么关系?这是一个2015年的ECMAScript文字模板
尼科范美女

1
这是最好的答案。
Stephen Collins

19

使用ES6时,您还可以执行以下操作:

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

注意:您需要使用反引号``而不是“''或''来做到这一点。



3

%j仅适用于Node.js。%j将值转换为JSON字符串并将其插入。

console.log('%j new messages for', 7, 'john')
// 7 new messages for john

这里有更多的字符串替换:

文件:


2

这取决于您想要什么。

console.log("story "+name+" story")串联串在一起,并打印。对我来说,我使用它是因为它更容易看到正在发生的事情。

使用console.log("story",name,"story")类似于连接,但是,它似乎运行以下命令:

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

这会将数组中的所有项目推在一起,并用空格隔开: .join(" ")


1

如先前的答案中所述,两者console.log("story" + name + "story")和都console.log("story", name, "story")工作正常。

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

输出如下:"story" [object Object] "story"

只是一个好习惯。


那你为什么要建议“,”一个。因为它将只打印[object object]。通常,我们想要的字符串版本将得到frmo“ +”。对?
P Satish Patro

0

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

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

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

它还支持%d格式化数字


-2

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

var name = prompt(“您叫什么名字?”); console.log(“ story” \ name \“ story”);

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.