java script的简单数据类型包括: 数字,字符串,true/false,null 和undefined。 其他所有值都是对象. 数组是对象,方法也是对象。属性值是除开undefined值以外的任何值。java script的属性是可以变的。和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,其实在java script我们可以通过命名一个对象。然后将自己特定的数据封装到对象中。来达到隔离效果。
var MyNamespace ={};
? ? MyNamespace.person ={
? ? ? ? name:"Frank",
? ? ? ? Age:23
? ? }
? ? console.log(MyNamespace.person.name);