对象题目的一个坑 理解Javascript对象

  作者:bea

这一篇的例子,主要是来引起对Javascript对象的理解及注意的。其实是一种面试时的一个坑,实际项目中也是很少用得到,但是为了提高警惕性,我们来看这个例子: 代码名称 var first = {};var second = {k:"second"};var third = {k:"third"};first[second] = 100;first[third] = 200;console.log(first[second])//这里会输出什么内容呢? 如果要自己做一

这一篇的例子,主要是来引起对Javascript对象的理解及注意的。其实是一种面试时的一个坑,实际项目中也是很少用得到,但是为了提高警惕性,我们来看这个例子:


代码名称




var first = {};
var second = {k:"second"};
var third = {k:"third"};
first[second] = 100;
first[third] = 200;
console.log(first[second])//这里会输出什么内容呢?


如果要自己做一下这个题,后面的解释先不看。


这里会输出什么样的结果呢?可能大部分人会觉得结果是100,或者是题目有错误,再或者是结果是200。


其实最终结果是200


为什么? 因为second、third都是对象,而且都是[object object],因此first[second] 等价于first[[object object]] 同样first[third] 等价于first[[object object]] 所以最终的结果可以是first["[object object]"],例子中对这个表达式进行了两次赋值操作,所以最终的结果是200。


所以在javascript中,很多的细节需要我们去注意的,或许就是那些面试者,不知道出什么面试题,尽出这些陷阱式的题目。不过,我们就是需要把基础打牢固了,什么都不怕! 后续我会继续出一些题目来做讲解!


通过一个简简单单的例题,引发了大家的思考,为大家学习javascript对象提供了有了许多启发,希望大家有所收获。




有用  |  无用

猜你喜欢