• (es6学习笔记03)对象,Symbol在对象中的作用,Set和WeakSet数据结构


    //ES6允许把声明的变量直接赋值给对象
    let name="jspang";
    let skill= 'web';
    var obj= {name,skill};
    console.log(obj);//Object {name: "jspang", skill: "web"}
    
    //有时候需要在后台去除key值,而不是前台定义好的,就要重新构建key值,把取的key,用[]进行对象的构建
    let key="skill";
    var obj={
        [key]:'web2'
    }
    console.log(obj.skill)//web2
    
    //自定义对象方法
    var obj2={
        add:function(a,b) {
            return a+b
        }
    }
    console.log(obj2.add(1,2))//3
    
    //Object.is() 对象比较
    console.log(+0 === -0);  //true
    console.log(NaN === NaN ); //false
    console.log(Object.is(+0,-0)); //false
    console.log(Object.is(NaN,NaN)); //true
    //===同值相等,is()严格相等
    
    //Object.assign合并对象
    var a={a:'jspang3'};
    var b={b:'技术胖3'};
    console.log(Object.assign(a,b))
    
    
    //Set和WeakSet数据结构
    //Set很像数组,但不是数组,set不允许内部有重复的值,可以进行循环输出
    let setArr = new Set(['jspang','技术胖','web','jspang']);
    //增删查 add,delete(clear),has  
    //size可以获得set的数量
    
    let weakObj=new WeakSet();
    let obj={a:'jspang',b:'技术胖'}
    weakObj.add(obj);
    console.log(weakObj);
    //如果你直接在new 的时候就放入值,将报错,不允许重复
    
    
    
    //Symbol在对象中的应用
    var jspang = Symbol();
    var obj={
        [jspang]:'技术胖'
    }
    console.log(obj[jspang]);
    obj[jspang]='web';
    console.log(obj[jspang]);
    
    //Symbol对象元素的保护作用
    let obj={name:'jspang',skill:'web'};
    let age=Symbol();
    obj[age]=18;
    for (let item in obj){
        console.log(obj[item]);//jspang web
    } 
    console.log(obj);//{name: "jspang", skill: "web", Symbol(): 18}
    //map数据结构
    //增删查 set delete has
    //取get 清楚clear 获取长度size
  • 相关阅读:
    类的静态成员
    ActionController::InvalidAuthenticityToken 解决办法
    Ruby的动态特性
    (转)右下角弹出消息框
    使用 Visual C++ 2008 功能包加强 Windows 应用程序
    Ajax以responseXML返回,客户端(IE)不能分析xml问题
    css的精髓是布局,而不是样式——之二
    字符编码的一些内容
    2009年好运!牛年要牛起来
    OpenLayers介绍
  • 原文地址:https://www.cnblogs.com/xiaohaha668/p/10651499.html
Copyright © 2020-2023  润新知