美文网首页
JavaScript对象属性只能是字符串的问题

JavaScript对象属性只能是字符串的问题

作者: 卓三阳 | 来源:发表于2018-05-25 22:55 被阅读99次
认识这个问题起源于一个编程问题

一个数组[1,2,3,'1','2',1]去重以后是[1,2,3,'1','2'],写出数组去重函数。
当时我的第一感觉是使用对象key的唯一性来解决这个问题,不过我观察完元素后心里就很犯嘀咕,1和‘1’的key会不会一样。
经过测试果然是一样的。


res.png

有一道类似的问题

var a={},
    b={key:'b'},
    c={key:'c'};

a[b]=123;
a[c]=456;

console.log(a[b] === 456);//true

这是为什么呢?


answer.png

意思是说b和c作为了对象的a的属性,但对象的属性必须是string类型,所以编译器就会使用''[object Object]''来代替他们。
其实a就下面这样


a.png

拓展


extend.png

参考
Why a[c] override a[b]? [duplicate]

相关文章

  • JavaScript对象属性只能是字符串的问题

    认识这个问题起源于一个编程问题 一个数组[1,2,3,'1','2',1]去重以后是[1,2,3,'1','2']...

  • js权威指南笔记

    字符串不是对象,为什么具备属性? 只要引用了字符串的属性,JavaScript 就会将字符串通过new Strin...

  • JavaScript内置对象

    对象 什么是对象Javascript中的所有事物都是对象:字符串、数值、数组、函数…每个对象带有对象的属性和方法(...

  • 对象Object

    JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。对象的属性:反...

  • JavaScript入门——对象(四)

    对象和属性概述 普通的 JavaScript 对象是“键值对”的无序集合。 属性包括一个名和一个值。属性名是字符串...

  • JS内置对象

    什么是对象JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。对象...

  • JavaScript对象

    什么是对象? JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。...

  • JS内对象:内置/浏览器

    什么是对象? JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。...

  • JavaScript学习笔记 - 进阶篇(6)- JavaScr

    什么是对象 JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。 ...

  • JS-对象/Date 日期对象/返回/设置年份方法/返回星期方法

    什么是对象 JavaScript 中的所有事物都是对象,如:字符串、数值、数组、函数等,每个对象带有属性和方法。 ...

网友评论

      本文标题:JavaScript对象属性只能是字符串的问题

      本文链接:https://www.haomeiwen.com/subject/mfhpjftx.html