Javascript中,对象题目的一个坑

吴统威 on 编程语言 前端编程 HTML/CSS/JAVASCRIPT | 2015-12-21 13:42:22.0

这一篇的例子,主要是来引起对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中,很多的细节需要我们去注意的.或许就是那些面试者,不知道出什么面试题,尽出这些陷阱式的题目.不过,我们就是需要把基础打牢固了.什么都不怕! 后续我会继续出一些题目来做讲解!