JavaScript基础(05_对象)

对象Object

  • 对象的分类:

    • 内建对象

      • 由ES标准中定义的对象,在任何的ES的实现中都可以使用

      • 比如:Math String Number Boolean Function Object....

    • 宿主对象

      • 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象

      • 比如BOM(浏览器对象) DOM(文档对象)

      • 比如 console document

    • 自定义对象

      • 由开发人员自己创建的对象

  • 创建对象

    • 构造函数

      • 使用new关键字调用的函数,是构造函数constructor

      • var obj = new Object();
      • 构造函数是专门用来创建对象的函数

      • 在对象中保存的值成为属性

      • 向对象添加属性

        • 语法:对象.属性名=属性值; || 对象["属性名"] = 属性值

      • 读取对象中的属性

        • 语法:对象.属性名 || 对象["属性名"]

      • 如果读取对象中没有的属性,不会报错,而会返回Undefined

      • 修改对象中的属性值

        • 语法:对象.属性名=属性新值;

      • 删除对象的属性

        • 语法:delete 对象.属性名

    • 对象字面量

      • 可以在创建对象时,直接指定对象中的属性

      • 语法:{属性名:属性值, 属性名:属性值...}

        • 对象字面量的属性名可以加引号,也可以不加

        • 如果要使用一些特殊的名字,则必须加引号

        • 属性名和属性值是一组的名值结构

        • 名和值之间使用:连接,多个名值之间使用,隔开

      • var obj2 = {name:"Tom",age:18}
    • Note

      • 属性名

        • 对象属性名不强制要求遵守标识符的规范

        • 尽量按照标识符的规范去用

      • 属性值

        • js对象的属性值,可以是任意的数据类型

        • 也可以是一个对象

      • in运算符

        • 通过in可以检查一个对象中是否含有指定的属性名

        • 语法:“属性名” in 对象

          • var obj = new Object()
            obj.name = "Tom"
            console.log("name" in obj)  //true
            console.log("test" in obj)  //false
  • 基本数据类型和引用数据类型

    • 变量都是保存到栈内存中的

      • 形式:变量名=变量值

      • 基本数据类型的值直接在栈内存中进行存储

      • 值与值之间是独立存在的,修改一个变量不会影响其他的变量的值

    • 对象是保存到堆内存中的

      • 每创建一个新的对象,就会在堆内存中开辟出一个新的内存空间

      • 变量保存的是对象所对应的内存地址(对象的引用)

      • 当通过一个变量修改对象属性时,另一个也会受到影响

    • 比较

      • 当比较两个基本数据类型的值时,就是值的比较

      • 而比较两个引用数据类型时,他们比较的是对象的内存地址

        • 如果两个对象是一模一样的,但是内存地址不同,结果也返回false

  • 常用对象

    • Date对象

      • 在js中使用Date对象来表示一个时间

      • 如果直接使用构造函数创建一个Date对象,则会封装为当前代码执行的时间

      • getDate()

        • 获取当前对象日期中的几号

      • getDay()

        • 获取当前对象日期中的星期几

        • 返回 0-6的值,0表示周日,1表示周一,6表示周六

      • getMonth()

        • 获取当前对象日期中的月份

        • 返回0~11的值

        • 0表示 1月,1表示2月,11表示12月

      • getFullYear()

        • 获取当前对象日期是几几年

      • getTime()

        • 获取当前对象日期的时间戳

        • 指的是从格林威治标准时间1970年1月1日,0时0分0秒到

        • 当前时间花费的毫秒数(ms)

    • Math对象

      • Math和其他对象不同,他不是一个构造函数

      • 他属于一个工具类,不用创建对象,里面封装了数学运算的相关属性和方法

        • 圆周率

          • console.log(Math.PI);

        • 绝对值

          • console.log(Math.abs(-4));

        • 向上取整

          • console.log(Math.ceil(1.4444));

          • console.log(Math.ceil(1.0444));

        • 向下取整

          • console.log(Math.floor(1.9444));

          • console.log(Math.floor(1.0444));

        • 四舍五入

          • console.log(Math.round(1.5444));

          • console.log(Math.round(1.4444));

        • 生成随机数0-1之间

          • 生成一个x-y之间的随机数:console.log(Math.round(Math.random()*(y-x)+x))

          • console.log(Math.random());

          • console.log(Math.random());

        • 生成一个1-6随机数

          • console.log(Math.round(Math.random()*5+1));

        • 最大值

          • console.log(Math.max(10,20,5));

        • 最小值

          • console.log(Math.min(10,20,5));

        • 平方根

          • console.log(Math.sqrt(4));

          • console.log(Math.sqrt(2));

          • console.log(Math.pow(2,2));

          • console.log(Math.pow(1,3));

          • console.log(Math.pow(2,3));

    • 包装类

      • 在js中提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象

        • String()

          • 可以将基本数据类型字符串转换为String对象

        • Number()

          • 可以将基本数据类型数字转换为Number对象

        • Boolen()

          • 可以将基本数据类型布尔值转换为Boolean对象

      • 当我们对一些基本数据类型的值去调用属性和方法时,

      • 浏览器会临时使用包装类将其转换为对象,然后调用对象的属性和方法

                 
posted @ 2020-09-19 18:08  名叫蛐蛐的喵  阅读(86)  评论(0编辑  收藏  举报