• JavaScript的对象深入学习


    JavaScript的对象是一种无序的集合数据类型,它由若干键值对组成。

      JavaScript用一个{...}表示一个对象,键值对以xxx: xxx形式申明,用,隔开。注意,最后一个键值对不需要在末尾加,,
    
      键值对即属性和值,访问属性是通过.操作符完成的,但这要求属性名必须是一个有效的变量名。如果属性名包含特殊字符,
    
      就必须用''括起来,访问这个属性也无法使用.操作符,必须用['xxx']来访问:
    
      var xiaohong = {
            name: '小红',
            'middle-school': 'No.1 Middle School'
      };
       
      xiaohong['middle-school']; // 'No.1 Middle School'
      xiaohong['name']; // '小红'
      xiaohong.name; // '小红'
      
      也可以用xiaohong['name']来访问xiaohong的name属性,不过xiaohong.name的写法更简洁。我们在编写JavaScript代码的时候,
    
      属性名尽量使用标准的变量名,这样就可以直接通过object.prop的形式访问一个属性了。
    
      实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。
    
      如果访问一个不存在的属性会返回什么呢?JavaScript规定,访问不存在的属性不报错,而是返回undefined
    
      var xiaoming = {
            name: '小明'
      };
      xiaoming.age; // undefined
    
      如果我们要检测xiaoming是否拥有某一属性,可以用in操作符
    
      var xiaoming = {
            name: '小明',
            birth: 1990,
            school: 'No.1 Middle School',
            height: 1.70,
            weight: 65,
            score: null
      };
      'name' in xiaoming; // true
      'grade' in xiaoming; // false
    
      不过要小心,如果in判断一个属性存在,这个属性不一定是xiaoming的,它可能是xiaoming继承得到的
    
       'toString' in xiaoming; // true
    
       因为toString定义在object对象中,而所有对象最终都会在原型链上指向object,所以xiaoming也拥有toString属性。
    
       要判断一个属性是否是xiaoming自身拥有的,而不是继承得到的,可以用hasOwnProperty()方法:
    
       var xiaoming = {
             name: '小明'
       };
       xiaoming.hasOwnProperty('name'); // true
       xiaoming.hasOwnProperty('toString'); // false
  • 相关阅读:
    机器学习分类
    12.python中高阶函数以及内建函数(map,filter,sorted),和闭包
    python中的异常处理相关语句和迭代器
    和好朋友渐行渐远是什么感觉?
    MDX学习笔记(整理) MDX语法
    Cognos软件介绍文档(原创)
    隐藏
    android::Mutex::Autolock的使用
    Android中sp和wp的使用
    Day 07 字符编码,文件操作
  • 原文地址:https://www.cnblogs.com/sunny_z/p/7091209.html
Copyright © 2020-2023  润新知