JavaScript Object使用toString

本文讨论了一个JavaScript面试问题,涉及空对象、带有属性的对象以及toString方法的隐式应用。当给对象c添加属性a和b,值分别为demo1和demo2时,输出结果显示为'demo2',这是因为属性名a和b被转换成了字符串,调用了toString方法。通过测试代码揭示了这一现象。
摘要由CSDN通过智能技术生成

今天偶然看到个js面试题目,问控制台输出信息是什么。

var a = {};
var b = {name:"ZS"};
var c = {};
c[a] = "demo1";
c[b] = "demo2";

console.log(c[a]);
console.log(c);


首先,a为空对象,b为name属性值为ZS的对象,c也为空对象;

之后,依次给c添加属性分别为a、b,值为demo1、demo2;

打印输出结果依次为:demo2(确实是demo2不是demo1);

                                       Object {[object Object]: "demo2"}。


疑惑的地方主要在于:第一行结果的demo2。

代码里的c[a]、c[b]隐式的将对象a,b使用了toString()方法进行了转换,然后再对属性赋值。


测试代码如下:

var a = {};
var b = {name:"ZS"};
var c = {
	"[object Object]":"demo"
	};
console.log(c[a]);//demo

c[a] = "demo1";   //这里接
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值