gpt4 book ai didi

javascript - 控制台日志在每个字符之间添加空格

转载 作者:行者123 更新时间:2023-11-30 11:37:32 25 4
gpt4 key购买 nike

我想要一个发送到服务器的每个套接字消息的控制台日志,所以我快速包装了 socket.iosocket.emit 函数

    var self = this;
this.socket = io.connect();

this.socket._emit = this.socket.emit;
this.socket.emit = function(){
console.log(...arguments[0]);
self.socket._emit(...arguments);
};

除了一些奇怪的控制台日志打印外,它工作正常。这发生在 Chrome 和 Firefox 上。这是怎么回事?

enter image description here


我确实通过使用 arguments[0] 而不是 ...arguments[0] 解决了这个问题,但我仍然很好奇..

最佳答案

spread syntax当用作函数调用的参数时,会将单个字符串值分解为每个字符的单独参数。下面的例子应该很清楚。

var str = "abc";
console.log(str); // abc
console.log(...str); // a b c
console.log("a","b","c"); // a b c

var ary = [...str];
console.log(ary); // (3) ["a", "b", "c"]

showArgs(...str);
function showArgs(x, y, z){
console.log(x); // a
console.log(y); // b
console.log(z); // c
}

为什么要使用 console.log(...arguments[0])?您希望/期望在那里使用 ... 会发生什么?

关于javascript - 控制台日志在每个字符之间添加空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43825729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com