zoukankan      html  css  js  c++  java
  • Javascript笔记--Objects

        Javascript的简单数据类型包括: 数字,字符串,true/false,null 和undefined。 其他所有值都是对象. 数组是对象,方法也是对象。属性值是除开undefined值以外的任何值。JavaScript的属性是可以变的。和C#的dynamic差不多,动态类.

           一. 对象声明以及初始化.

                Notes:  1.属性包含"-"和" "时候需要加上引号,对于"_"不需要加引号

    var stooge={
            "first Name":"Frank",
            "last Name":"Zhang"
        }var person ={
            name:"Frank",
            Age:23,
     }

           二.检索. 

                Notes: 1.  在检索对象的值可以通过[]和. 来获取.

                          2. 如果在赋值的时候,该属性不存在。那么会自动创建该属性并赋值.

                          3.  检索中如果.propertyName不存在将输出undefine;

                          4.  获取undefine, null 数据的.PropertyName 将会报错, 如果数据是非undefine和非null的将不会报错.即使是赋值的数字.          

        console.log(person.name);
    
        stooge["middle Name"]="C"; //属性不存在,重新创建该属性
        console.log("My full name is "+stooge["first Name"]+"."+stooge["middle Name"]+"."+stooge["last Name"]); //Frank.C.Zhang
    
    console.log(person.vip); //不报错,输出undefine try{ console.log("test"+person.Vip.Msg); // .vip未声明,然后获取.msg对象就会报错 }catch(ex){ console.log(ex.message); // 输出Cannot read property 'Msg' of undefined } person.Vip = null; try{ console.log("test"+person.Vip.Msg); // .vip未声明,然后获取.msg对象就会报错 }catch(ex){ console.log(ex.message); // 输出Cannot read property 'Msg' of null } person.Vip = 1; try{ console.log(person.Vip.Msg); // 输出undefine }catch(ex){ console.log(ex.message); }

               三. 反射

         console.log(person.hasOwnProperty("name")); //true
         console.log(typeof(person.Age)); //number
         console.log(typeof(person.toString)); //function

              四.遍历

                Notes: 1.遍历对象的时候,name是对应的属性名称.而不是属性值;

                          2. 获取属性值还是要通过[]和.获取;

    for(var name in stooge){
            console.log(name); 
            console.log(typeof(name));
    
            console.log(stooge[name]);
            console.log(typeof(stooge[name]));
        }

              五.删除.

               Notes: 1.删除属性通过delete obj.propertyName删除.

              六. 局部类

               Notes: 前面的类我们都是用的全局变量,全局变量用的过多会降低程序的灵活性, 以及开发中会遇到命名重复的问题. 在C#中有命名空间,在Java中也有package,其实在JavaScript我们可以通过命名一个对象。然后将自己特定的数据封装到对象中。来达到隔离效果。

    var MyNamespace ={};
        MyNamespace.person ={
             name:"Frank",
             Age:23
        }
    
        console.log(MyNamespace.person.name);

              

           

  • 相关阅读:
    图像膨胀
    图像腐蚀
    C#多线程与异步
    matplotlib画图总结--多子图布局
    matplotlib画图总结--常用功能
    STM32 MCU一次计算优化和提速
    数字麦克风PDM信号采集与STM32 I2S接口应用--笔记目录
    数字麦克风PDM信号采集与STM32 I2S接口应用(三)
    数字麦克风PDM转PCM与STM32 I2S接口应用----重要文档列表
    数字麦克风PDM信号采集与STM32 I2S接口应用(二)
  • 原文地址:https://www.cnblogs.com/FourLeafCloverZc/p/4346013.html
Copyright © 2011-2022 走看看