06-javaScript基础-对象

作者: 撩课_叶建华 | 来源:发表于2018-10-25 10:15 被阅读361次

    文章配套视频

    辨别JS中的对象

    除了5种基本的数据类型,其它的全都是对象
    Object就是一个对象

    为什么要使用对象

    基本数据类型都是单一的值, 比如: "itlike" , 123 , true等, 值和值之间没有任何的联系。

    比如想要描述一个人?
    如果使用基本数据类型的数据,我们所创建的变量都是独立,不能成为一个整体。

    var name = "撩课学院";
    var intro = "喜欢IT, 就上撩课";
    var age = 108;
    对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。
    

    JS中对象的分类

    内置对象

    由ES标准中定义的对象,在任何的ES的实现中都可以使用
    比如:String Number Boolean Function Object Math ....
    

    宿主对象

    由JS的运行环境提供的对象,现在主要指由浏览器提供的对象
    比如: BOM对象, DOM对象
    

    自定义对象

    我们自己创建的对象
    比如: Person, Dog, ....
    

    如何创建对象
    1.构造函数

    构造函数是专门用来创建对象的函数
    使用new关键字调用的函数,可以被称为构造函数(constructor)
    var obj = new Object();
    

    2.定义

    在对象中保存的值称为属性
    向对象添加属性: 对象.属性名 = 属性值
    读取对象中的属性: 对象.属性名:如果读取对象中没有的属性,不会报错而是会返回undefined
    修改对象的属性值: 对象.属性名 = 新值
    删除对象的属性: delete 对象.属性名
    

    3.定义一个人

    var obj = new Object();
    //向obj中添加一个name属性
    obj.name = "谢霆锋";
    //向obj中添加一个gender属性
    obj.gender = "男";
    //向obj中添加一个age属性
    obj.age = 38;
    读取  修改   删除
    

    属性名和属性值
    1.属性名
    对象的属性名不强制要求遵守标识符的规范, 怎么写都可以, 但还是按照标准来比较好!

    var obj = new Object();
    obj.name = "叶建华";
    obj.if = "如果";
    console.log(obj);
    

    注意

    如果要使用特殊的属性名,不能采用.的方式来操作, 
    需要使用另一种方式, 
    语法: 对象["属性名"] = 属性值, 读取也要用该方式
    
    obj["666"] = 888;
    console.log(obj["666"]);
    
    var str = '666';
    obj[str] = 888;
    console.log(obj[str]);
    

    2.属性值

    JS对象的属性值,可以是任意的数据类型, 也可以是一个对象
    obj.content = null;
    obj.content = true;
    obj.content = undefined;
    
    调试
    var obj2 = new Object();
    obj2.name = "小花花";
    obj.dog = obj2;
    

    3.in 运算符

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

    基本类型和引用类型在堆栈中的表示
    1.基本数据类型

    String Number Boolean Null Undefined
    

    2.引用数据类型

    Object
    

    3.区别

    JS中的变量都是保存到栈内存中的,
    基本数据类型的值直接在栈内存中存储,
    值与值之间是独立存在,
    修改一个变量不会影响其他的变量
    对象是保存到堆内存中的,
    每创建一个新的对象,
    就会在堆内存中开辟出一个新的空间,
    而变量保存的是对象的内存地址(对象的引用),
    如果两个变量保存的是同一个对象引用,
    当一个通过一个变量修改属性时,另一个也会受到影响
    

    4.画图分析
    5.注意

    比较两个基本数据类型的值时,就是比较值。
    比较两个引用数据类型时,
    它是比较的对象的内存地址,
    如果两个对象是一摸一样的,但是地址不同,它也会返回false
    

    对象字面量

    使用对象字面量,可以在创建对象时,直接指定对象中的属性
    语法:var 对象 = {属性名:属性值,属性名:属性值....};
    对象字面量的属性名可以加引号也可以不加,建议不加, 如果要使用一些特殊的名字,则必须加引号
    格式:属性名和属性值是一组一组的名值对结构,和值之间使用:连接,多个名值对之间使用,隔开
    
    案例:
    var obj = { 
        name:"刘德华",
        age:50,
        gender:"男",
        friend:{name:"洗头发"}
        };  
    console.log(obj.friend);
                
    

    相关文章

      网友评论

        本文标题:06-javaScript基础-对象

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