该问题也存在于 Safari 中。正如其他人在这个问题和类似问题中指出的那样,控制台传递了一个对对象的引用,它在控制台打开时打印对象的值。例如,如果您直接在控制台中执行代码,则值会按预期打印。我更喜欢传播数组(例如,在您的情况下为console.log([...C]);)和对象,而不是 JSON 字符串化:结果完全相同,但代码看起来更简洁。我有两个VS 代码片段要分享。
"Print object value to console": {
"prefix": "clo",
"body": [
"console.log(\"Spread object: \", {...$0});"
],
"description": "Prints object value instead of reference to console, to avoid console.log async update"
},
"Print array value to console": {
"prefix": "cla",
"body": [
"console.log(\"Spread array: \", [...$0]);"
],
"description": "Prints array value instead of reference to console, to avoid console.log async update"
}
为了获得与console.log( JSON.parse(JSON.stringify(c)))相同的输出,如果您愿意,可以省略字符串部分。顺便说一句,扩展语法通常可以节省时间和代码。