<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>变量、作用域</title>
</head>
<body>
<script>
var a = {name: 'xm'},b = [4];
b[1] = a;
a = b[0];
b = b[1];
console.log(a + "---" + b); //其输出结果为:4---name: "xm",为什么是4---[object Object]。
</script>
</body>
</html>
直接使用es6新特性解构赋值,一行代码轻松搞定调换
然后解答下为什么输出的是4---[object Object]。
因为a是数组,b是对象,结果你通过字符串的拼接方式把他们拼起来了,浏览器可以自动将[4]转换为4,但不能自动将对象转换成字符串,所以输出[object,object]
var a = {name: 'xm'},b = [4];
b[1] = a;
a = b[0];
b = b[1];
console.log(a , b);
把打印里的符号改一下,用逗号就可以了
a + "---" + b
//等价于
a + "---" + b.toString() //a + "---" + "[object Object]"
//正确输出4---name: "xm"
a + "---" + JSON.stringify(b)
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632