美文网首页js笔记让前端飞程序员
js笔记五之对象(object)类型

js笔记五之对象(object)类型

作者: uplyw | 来源:发表于2018-05-03 19:02 被阅读23次

    对象数据类型 object

    var obj = {name:"lilei",age: 18}
    每一个对象都是由零到多组 属性名(key键):属性值(value值) 组成的,或者说由多组键值对组成的,每一组键值对中间用逗号分隔

    属性: 描述这个对象特点特征的

    对象的属性名是字符串或者数字格式的,存储的属性值可以是任何数据类型

    操作属性

    获取属性

    对象名.属性名 // 忽略了属性名的单双引号
    对象名['属性名']

    var obj = {name:"lilei",age:18,0:100}
    
    // -> 获取某个属性名对应的属性值
    obj.name // -> "lilei"
    obj['name'] // -> "lilei"
    
    // -> 如果属性名是数字怎么操作
    obj.0 // -> 语法不支持
    obj[0] 或 obj['0'] // -> 两种都支持  -> 100
    
    // -> 如果操作的属性名在对象中不存在,获取的结果是 undefined
    obj.sex // -> undefined
    

    增加/修改

    一个对象的属性名是不能重复的(唯一性)
    如果之前存在就是修改属性值的操作
    如果不存在就是新设置(增加)属性的操作

    var obj = {name:"lilei",age:18}
    
    // -> 增加/修改 -> 
    obj.sex = "man"; // 增加了属性名sex,并赋值为man
    obj['age'] = 19; // 修改了属性名age,并赋了新值19
    

    删除属性

    假删除: 让其属性值赋值为null,但是属性还在对象中

    obj.sex = null;
    

    真删除: 把整个属性在整个对象中暴力移除

    delete obj.sex;
    

    思考题: obj[age]和obj['age']有什么区别?

    相关文章

      网友评论

      • LI_4058:age:变量名,代表的是它存储的值。

        ‘age’:常量,字符串的具体值。

        var age = 'name';
        var obj ={
        name='zhufeng',
        age:8
        };
        console.log(obj.age); //=> 8
        console.log(obj['age']);// =>8
        console.log(obj[age]); //=>obj[age变量] =>obj['name'] =>获取name属性名的属性值 =>"zhufeng"
        obj[age]操作的是对象中的属性,并不是操作的变量,所以是操作的变量所存储的值,也就相当于obj[‘name’],而obj[‘age’]就是操作的是obj对象中age属性,所以值就是age本身。

      本文标题:js笔记五之对象(object)类型

      本文链接:https://www.haomeiwen.com/subject/biplrftx.html