es6可变参数的问题

碰到这样的一个问题,利用es6的可变参数方式给函数参数赋值,例如;
function log1(msg, ...params){

console.log(msg, params);

}
log1("fff%d%d%d",12,3,4);
输入的结果为:fffNaN%d%d
跟实际想要的结果不一样,想要的结果是fff%d%d%d [12,3,4]
请问该怎么处理?


四季花海
浏览 647回答 2
2回答

梵蒂冈之花

console.log有格式化输出的功能,你这刚好触发它的这个功能可以这样,输出两次console.log(msg);console.log(params)

白猪掌柜的

问题的根本原因在于console.log这函数,而不是rest参数function log(first, ...rest) {    console.log(first);    console.log(rest);}你可以试下它是正常的。console.log源码有兴趣可以看一下%d表示的是占位符,而你现在传入的第二个参数,也就是rest参数是一个数组,所以被解释成了NaN。而如果正常的话应该是这样: console.log('fff%d%d%d',2,3,4); // fff234;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript