zoukankan      html  css  js  c++  java
  • ECMAScript---object对象类型详解

    普通对象:由大括号包裹起来的,由零到多个属性名和属性值(键值对)组成的

    那什么是属性呢?

    属性:描述当前对象特征的,属性名是当前具备这个特征,属性值是这个特征的描述(专业语法,属性名称为键[key],属性值称为值[value],一组属性名和属性值称为一组键值对)

    对象的属性名 可以是数字

    var obj={
    1:12,
    true:100,
    null:200,
    undefined:300,
    {}:400
    } obj[1];// 12 obj['1'];// 12 obj.1 ; //语法错误
    obj[{}]=300 ;// 存储的是[object Object]: 300

    当我们存储的属性名不是字符串和数字,浏览器会把这个值转换为字符串(toString转换),然后在进行存储

    属性的操作:增删改查

    var obj = {
     
       name:'我是一个名字', 
       age:10
    }
    //获取属性名的值 (查)
    obj.name  //obj的name属性名
    obj['name']  //正规的获取方式,一般来说,对象的属性名都是字符串格式的,属性值是任意格式的
    //增加和修改
    
    var obj1 = {name:'qqq'};
    var obj2 = {name:'www'};
    
    obj1.name = '韩梅梅'; //修改
    obj1.sex = 20; //增加属性sex

    js对象中属性名是不允许重复的,是唯一的,原来有就是修改,原来没有就是增加

    //删除属性
     var obj3 = {
       name:'jack',
       age:18
    } 
    
     delete obj3['name'] ;//彻底删除  再获取为undefined
     obj3['age'] = null; //假删除,只是将当前属性的值为空,属性名还在   再获取为null

     数组对象

    数组也是对象,并且数组对象的属性名是数字,我们称为数字属性名为当前对象的索引

    var ary =[20,30,40];
    ary['0'];//20
    ary[0]'//20
    ary.0 ;//Uncaught SyntaxError: Unexpected number,语法错误
    ary.length;//2
    ary['length'];//2
    ary.age=50 ; [20,30,40,age:50]

    数组和对象的关系是啥?

    数组是对象的一种细分,对象包含数组,对象拥有的数组一样可以拥有

    数组对象属中依次递增的数字属性名叫做索引

    思考题:

    var obj4 = {name:'lilei'};
    var name='hanmeimei';
    obj4.name;
    obj4['name'];
    obj4[name];

    答案:

    obj4.name;//'lilei'
    obj4['name'];// 'lilei'
    obj4[name];//undefined

    分析:'name'和name区别,
    'name'是一个字符串的值
    name是一个变量,不是值,代表的是它存储的值,这里没有这个name变量,所以是undefined




  • 相关阅读:
    2021.4.4(每周总结)
    2021.4.2
    2021.4.1
    2021.3.31
    2021.3.30
    2021.3.29
    2021.3.28(每周总结)
    2021.3.26
    C语言中指针与取地址符&详解
    使用JDBC连接、操作数据库、实现数据处理
  • 原文地址:https://www.cnblogs.com/xinxinxiangrong7/p/11424475.html
Copyright © 2011-2022 走看看