zoukankan      html  css  js  c++  java
  • js对象和map的区别

    看一道对象和map的题:

      function test1(){
          var a={},b='123',c=123;
          a[b]="b";
          a[c]="c";
          console.log('a :>> ', a);// {123:"c"}
          console.log('a[b] :>> ', a[b]);
          // 断言 c 
          // 正确
        }
        function test2(){
          var a={};
          var b = Symbol('123')
          var c = Symbol('123')
          a[b]='b'
          a[c]='c'
          console.log('a :>> ', a);//{SSymbol(123):'b',Symbol(123):'c'}
          console.log('a[b] :>> ', a[b]);
          // 断言 b
          // 正确
        }
        function test3(){
          var a={};
          var b = {key:'123'}
          var c = {key:'456'}
          a[b]='b'
          a[c]='c'
          console.log('a :>> ', a);// {[Object Object]:"c"}
          console.log('a[b] :>> ', a[b]);
          // 断言 c
          // 正确
        }
        // test1()
        // test2()
        // test3()

    然后问 如果把对象换成Map结果是什么样的?

        function test11(){
          var a=new Map(),b='123',c=123;
          a.set(b,"b")
          a.set(c,"c")
          console.log('a :>> ', a);// 卧槽
          console.log('a[b] :>> ', a.get(b));
          // 断言 b
          // 结果 b
        }
        function test22(){
          var a=new Map();
          var b = Symbol('123')
          var c = Symbol('123')
          a.set(b,"b")
          a.set(c,"c")
          console.log('a :>> ', a);// wc
          console.log('a[b] :>> ', a.get(b));
          // 断言 b
          // 正确
        }
        function test33(){
          var a=new Map();
          var b = {key:'123'}
          var c = {key:'456'}
          a.set(b,"b")
          a.set(c,"c")
          console.log('a :>> ', a);// wc
          console.log('a[b] :>> ', a.get(b));
          // 断言 b
          // 结果 b
        }
        test11()
        test22()
        test33()

    然后截图看看a吧:

    最后想说的是:

    对象和Map的区别就是:

      对象的key是字符串或者是Symbol,map的key可以是任何类型;

      用法不一样,你要还是a[b]="b",这样赋值取值 ,那结果不会变和对象时一样。

    over

  • 相关阅读:
    pythoon 学习资源
    cookie -- 添加删除
    前端技能
    jsonp 跨域2
    jsonp 跨域1
    webpy.org
    Flask 学习资源
    pip install flask 安装失败
    弹窗组价
    js中的deom ready执行的问题
  • 原文地址:https://www.cnblogs.com/rainbowLover/p/13658794.html
Copyright © 2011-2022 走看看