我正在用JavaScript制作一个简单的游戏,但在故事中,我需要用它说出玩家的名字。所以我到目前为止是:
var name = prompt("what is your name?");
console.log("story" name "story);
我如何做第二行?或有另一种方式我可以做到这一点。console.log();
控制台中是否可以有2合1线路?
我正在用JavaScript制作一个简单的游戏,但在故事中,我需要用它说出玩家的名字。所以我到目前为止是:
var name = prompt("what is your name?");
console.log("story" name "story);
我如何做第二行?或有另一种方式我可以做到这一点。console.log();
控制台中是否可以有2合1线路?
Answers:
console.log
需要多个参数,因此只需使用:
console.log("story", name, "story");
如果name是anobject
或an,array
则使用多个参数比连接更好。如果将object
或串联array
到字符串中,则只需记录类型而不是变量的内容。
但是,如果name只是原始类型,则多个参数的作用与串联相同。
console.log('story %s story',name);
%s
是连接字符串的最佳方法,因为您不需要先更改变量类型。我想知道JS中是否相同?
您可以使用另一种控制台方法:
let name = prompt("what is your name?");
console.log(`story ${name} story`);
有几种方法可以将字符串中的变量合并。
方法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);
好处:字符串变得更具可读性。
%j
仅适用于Node.js。%j
将值转换为JSON字符串并将其插入。
console.log('%j new messages for', 7, 'john')
// 7 new messages for john
如先前的答案中所述,两者console.log("story" + name + "story")
和都console.log("story", name, "story")
工作正常。
我仍然建议您养成一种习惯console.log("story", name, "story")
,因为,如果尝试打印对象内容(如json对象),"story" + objectVariable + "story"
则将其转换为字符串。
输出如下:"story" [object Object] "story"
。
只是一个好习惯。