JS_Object对象

本文讲解了JavaScript对象的基础概念,包括内建对象、宿主对象和自定义对象,展示了如何通过new关键字创建对象,添加、读取、修改和删除属性,以及使用字面量和in运算符操作对象。重点介绍了属性名的灵活性和属性值的多样性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象简介

		/* 
        对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性 
        
        对象的分类:
        1、内建对象
            -由ES标准中定义的对象,在任何的ES中都可以使用
            -比如:Math String Object……
        2、宿主对象
            -由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
            -比如:BOM(浏览器对象模型) DOM(文档对象模型)
                在console.log()中,console就是一个对象
        3、自定义对象
            -由开发人员自己创建的对象

       */
       //创建对象
       /* 
       使用new关键字调用的函数,是构造函数constructor
       构造函数是专门用来创建对象的函数
       使用typeof检查一个对象时,会返回一个Object
       */
        var obj = new Object();
        // console.log( typeof obj);
        /* 
        在对象中保存的值称为属性
        向对象添加属性
        语法:
            对象.属性名 = 属性值;
        */
       //向obj中添加一个name属性
        obj.name = "Anna";
       //向obj中添加一个age属性
        obj.age = 15;
        console.log(obj);//返回{name: "Anna", age: 15}
       /* 
       读取对象中的属性
       语法:
        对象.属性名

        如果读取对象中没有的属性,不会报错,而是会返回一个undefined

       */
        console.log(obj.name);//返回Anna
        console.log(obj.sex);//返回undefined
       
        /* 
        修改对象的属性值
        语法:
            对象.属性值 = 新值;
        */
       obj.name = "Tom";
       console.log(obj.name);//返回Tom

       /* 
       删除对象的属性
       语法:
        delete 对象.属性名
       */
      delete obj.name;
      console.log(obj.name)//Undefined
      console.log(obj);//返回{age:15}

属性值和属性名

 		/* 
        属性名:
        对象的属性名不强制要求遵守标识符规范,取什么名都行

        如果要使用特殊的属性名,不能采用.的方式,使用下列语法:
            对象["属性名"] = 属性值
        
        */
       var obj = new Object();
       obj["123"] = 456;
       console.log(obj);
       console.log(obj['123']);
        /* 
        使用[]这种形式去操作属性,更加的灵活
        在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
        */
       obj['hello'] = '你好';
       var n = 'hello';
       console.log(obj[n]);//效果同obj['123'],若将n的值改为'hello',则输出“你好”。
       
       /* 
       属性值
       JS对象的属性值,可以是任意的数据类型
       甚至也可以是一个对象
       */
        obj.test = 0;
        var obj2 = new Object();
        obj2.name = "sun";
        obj.test = obj2;
        console.log(obj);
        console.log(obj.test);

        /* 
        in运算符
        -通过该运算符可以检查一个对象中是否含有指定的属性
            有则返回true,没有则返回false
        -语法:
            "属性名" in 对象
        */

        //检查obj中是否含有test2这个属性
        console.log("test2" in obj);//返回false
        console.log("test" in obj);//返回true

对象字面量

 		//创建一个对象
        //var obj = new Object();
        
        //使用字面量来创建一个对象
        var obj = {};//形同 var obj = new Object();
        obj.name = "tom";
        console.log(obj);

        /* 
        使用对象字面量,可以在创建对象时,直接指定对象中的属性
        语法:
            {属性值:属性名,属性值:属性名,属性值:属性名...}
        对象字面量的属性名可以加引号,也可以不加(一般不加)
        如果要使用一些特殊的名字,必须加引号

        属性名和属性值是名值对结构,之间用:连接,多个名值对用,分隔
        */
        var obj2 = {
            name:"nana",
            age:16,
            test:{name:"tutu"}
        };
        console.log(obj2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值