JavaScript基本数据类型(5)- 对象/数组(object/Array)

引用数据类型

-对象数据类型 object

{} 普通对象,[]数组对象,/^&/ 正则对象,Math数学函数对象,日期对象

对象Object

{[key]:[value], ...}任何对象都是由于零到多组键值对(属性名:属性值)组成的(并且属性命不能重复)

  • 创建一个基本的对象

    let obj = {
        1: 'id',
        name: '张三',
        age: 60,
        height: '136CM',
        weight: '80KG'
    }
    

    ①:对象里的属性名都是 字符串数字

  • 对象的增删改查

    // 增
    obj.sex = 'M';
    obj['hobby'] = ['唱', '跳', 'rap']
    
    // 改
    obj.sex = 'F';
    obj['hobby'] = ['篮球']
    
    // 删	=>	真删除 / 假删除
    delete obj.name	// 真
    obj.name = null	// 假,null用来表示没有对象,不存在值
    
    // 查
    // 1. 对象.属性
    console.log(obj.name);		// '张三'
    console.log(obj.weight);	// '80KG'
    
    // 2. 对象["属性名"/数字]
    console.log(obj[1]);		// 'id'
    console.log(obj['height']);	// '136CM'
    
  • ES5新增的方法:

    defineProperty

    创建或配置对象的一个属性

    使用

    object.defineProperty(obj, propertyName, description)

    返回值

    ​ 返回对象 obj

    案例
    var obj = {};
    
    // 以前添加属性
    obj.name = 'xyb';
    obj.age = 20;
    
    // 现在使用defineProperty(),来增加一个属性 'money'
    Object.defineProperty(obj, 'money', {
        value: '3000元',
        writable: false, // 属性是否可以被重写,默认false
        enumerable: false, // 属性是否能被遍历,默认false
        configurable: false // 属性是否可以被删除或者再次修改特性(description),默认为false
    })
    
    obj.money = '1000元'; // 不能修改,因为writable的存在
    delete obj.money	  // 不能修改,因为configurable的存在
    for(let v of obje){console.log(v)}	// money的值不能遍历或者枚举出,因为enumerable的存在
    console.log(obj);
    
  • keys/values

    获取对象自身的所有属性名/属性值

    使用

    object.keys() / object.values()

    返回值

    ​ 返回一个数组

    案例
    var obj = {
        name: 'xyb',
        age: 20
    };
    
    console.log(Object.keys(obj));
    console.log(Object.values(obj));
    
数组Array

数组是特殊的对象数据类型

  1. [] 里面写的是属性值, 0~n 为 属性名,是数字,我们把他称为索引(属性值)

  2. 每个数组默认有一个属性名,叫做 length,用来存储数组的长度

  3. typeof 数组,结果是 Object

    let arr = ['xyb', 20, '162'];
    console.log(arr.length)		// 3
    console.log(typeof arr)		// Object
    arr[arr.length - 1] = 60	// 向数组末尾追加60这个值
    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值