JavaScript对象

JavaScript对象

对象属于一种复合数据类型,在对象中可以保存多个不同的数据类型的 属性

对象的分类

  1. 内建对象

    -由es标准中定义的对象,在任何的es的实现中都可以使用

    -比如:math string number Boolean function object。。。

  2. 宿主对象

    -由js的运行环境提供的对象,目前来讲主要指浏览器提供的对象

    -比如:BOM DOM

    console.log();

    document.write();

  3. 自定义对象

    -有开发人员自己创建的对象

创建对象

使用new关键字调用的函数,是构造函数constructor

构造函数是专门用来创建对象的函数

使用typeof检查一个对象时,会返回object

var obj = new Object();
 //console.log(typeof  obj);

在对象中保存的值称为属性

向对象添加属性

语法: 对象, 属性名 = 属性值

读取属性

语法:对象.属性名

 		 //name属性
        obj.name = "张三";
        //gender
        obj.gender = "男"
        //age
        obj.age = 17;
        console.log(obj);
        document.write(obj.name, obj.gender, obj.age);

修改对象的属性值

语法: 对象.属性名 = 新值

        obj.name = "jack"
        console.log(obj.name);

删除对象的属性

语法:delete 对象.属性名

 	   delete obj.name;
       console.log(obj.name);

属性名和属性值

        var obj = new Object;

        /* 
            向对象中添加属性
            属性名:
                -对象的属性名不强制要求遵守标识符的规范
                    什么乱七八槽的名字都可以使用
                -但是我们使用还是尽量按照标识符的规范去做
        */

        obj.name = "tom";

        obj.var = "jan";
        console.log(obj.var);

如多要使用特殊的属性名,不能采用 . 的方式来操作

需要使用另一种方式,

语法:对象["属性名"] = 属性值

读取时也需要采用这种方法

使用[]这种形式区操作属性,更加的灵活

在[]中可以直接传递一个变量,这样变量值就会读取那个属性

例如:数字...

       obj["1234"] = 1234;
       obj["@#$%^&*()@#$%^**"] = "!@#$%^&*()_+"
       console.log(obj["1234"]);
       console.log(obj["@#$%^&*()@#$%^**"])

       var n = "1234";
       var m = "@#$%^&*()@#$%^**";
       console.log(obj[n]);
        document.write(obj[n]);
        document.write(obj[m]);

属性值

js对象的属性值,可以是任意的数据类型

甚至也可以是一个对象

        obj.test = true;
        obj.test2 = undefined;
        obj.test3 = String;
        console.log(obj.test);
        console.log(obj.test2);
        console.log(obj.test3);

in 运算符

        //创建一个对象
        var obj2 = new Object;
        obj2.name = "timi";

        //将obj2设置为obj的属性
        obj.test4 = obj2;

        console.log(obj.test4.name);

        /* 
            in 运算符
                -通过运算符可以检查一个对象中是否含有指定的属性
                    如果有则返回true 没有则返回false
                - 语法
                    “属性名” in 对象
        */
        //检查obj中是否含有test5属性
        console.log("test5" in obj)
原文地址:https://www.cnblogs.com/meiwt/p/14467979.html