Js(对象)

69 阅读4分钟

一.对象(object)

  • 对象是一种无序数据的集合,是一种数据类型
  • 对象的声明语法: 1.let 对象 = {} 2. let 对象名 = new Object( )

let 对象名 ={

属性名:属性值,

方法名:函数

}

1. 属性都是成对出现的,包括属性名和值,它们之间使用英文 : 分隔

2. 多个属性之间使用英文 , 分隔

3. 属性就是依附在对象上的变量(外面是变量,对象内是属性)

对象的使用方法:

  • 查询对象: 对象名 .属性

  • 修改对象: 对象名. 属性

  • 增加对象新的数据: 对象名. 新属性名 = 新值

  • 删除对象中的属性: delete.对象名.属性名

    const obj = { uname: '刘德华', age: 18, love: '唱歌', dengger: '男' } // 给对象增加属性 obj.car = '宝马5系' // 给对象修改属性 obj.love = '跳舞' console.log(obj);

遍历数组:

  • 遍历数组方法:for... in

  • for in语法中的k是一个变量,在循环的过程中代表对象的属性名

  • 由于k是变量,所以必须使用{}语法解析

  • 注意关键:是获取对象的属性名,对象名[k]是获得属性值

    let get = { name: '刘德华', age: 20, sing: '唱歌', home: '中国' } for (let k in get) { // 打印属性名 console.log(k); // 打印属性值 console.log(get[k]); }

内置对象:

Math 是 JavaScript 中内置的对象,称为数学对象,这个对象下即包含了属性,也包含了许多的方法。

  • Math.PI,获取圆周率

    // 圆周率 console.log(Math.PI);

  • Math.random,生成 0 到 1 间的随机数

    // 0 ~ 1 之间的随机数, 包含 0 不包含 1 Math.random()

  • Math.ceil,数字向上取整

    // 舍弃小数部分,整数部分加1 Math.ceil(3.4)

  • Math.floor,数字向下取整

    // 舍弃小数部分,整数部分不变 Math.floor(4.68)

  • Math.round,四舍五入取整

    // 取整,四舍五入原则 Math.round(5.46539) Math.round(4.849)

  • Math.max,在一组数中找出最大的

    // 找出最大值 Math.max(10, 21, 7, 24, 13)

  • Math.min,在一组数中找出最小的

    // 找出最小值 Math.min(24, 18, 6, 19, 21)

  • Math.pow,幂方法

    // 求某个数的多少次方 Math.pow(4, 2) // 求 4 的 2 次方 Math.pow(2, 3) // 求 2 的 3 次方

  • Math.sqrt,平方根

    // 求某数的平方根 Math.sqrt(16)

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。

  1. 值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型 string ,number,boolean,undefined,null
  2. 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型 通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date

堆栈空间分配区别:

1、栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中的栈; 简单数据类型存放到栈里面

2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。 引用数据类型存放到堆里面

简单数据类型的内存分配:

  • 值类型(简单数据类型): string ,number,boolean,undefined,null
  • 值类型变量的数据直接存放在变量(栈空间)中

​编辑

复杂类型的内存分配:

  • 引用类型(复杂数据类型):通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等
  • 引用类型变量(栈空间)里存放的是地址,真正的对象实例存放在堆空间中

​编辑