对象是什么?

191 阅读6分钟

对象

对象是什么

⚫ 对象(object):JavaScript里的一种数据类型

⚫ 可以理解为是一种无序的数据集合

⚫ 用来描述某个事物,例如描述一个人

➢ 对象是一种数据类型

➢ 无序的数据的集合

➢ 人有姓名、年龄、性别等信息、还有吃饭睡觉打代码等功能

➢ 如果用多个变量保存则比较散,用对象比较统一

⚫ 比如描述 班主任 信息:

静态特征 (姓名, 年龄, 身高, 性别, 爱好) => 可以使用数字, 字符串, 数组, 布尔类型等表示

动态行为 (点名, 唱, 跳, rap) => 使用函数表示

对象有什么特点?

➢ 无序的数据的集合

➢ 可以详细的描述描述某个事物

对象使用

let 对象名 = {}
​
let person= {}

对象有属性和方法组成

➢ 属性:信息或叫特征(名词)。 比如 手机尺寸、颜色、重量等…

➢ 方法:功能或叫行为(动词)。 比如 手机打电话、发短信、玩游戏…

let 对象名 = {
     属性名:属性值,
     方法名:函数
}
​
let person = {
     uname:'andy',
    age:18,
    sex:'男'
}

掌握对象语法,用它保存多个数据

属性

数据描述性的信息称为属性,如人的姓名、身高、年龄、性别等,一般是名词性的。

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

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

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

➢ 属性名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等

对象属性没有顺序

属性和值用什么 : 隔开 ,多个属性用 , 隔开

掌握对象语法,用它保存多个数据

属性访问

声明对象,并添加了若干属性后,可以使用 . 或 [] 获得对象中属性对应的值,我称之为属性访问。

简单理解就是获得对象里面的属性值

let person = {
     uname:'andy',
    age:18,
    sex:'男'
}
console.log(person.name)
console.log(person.age)
//或者
let person = {
     uname:'andy',
    age:18,
    sex:'男'
}
console.log(person['name'])
console.log(person['age'])

对象中的方法:

数据行为性的信息称为方法,如跑步、唱歌等,一般是动词性的,其本质是函数。

  1. 方法是由方法名和函数两部分构成,它们之间使用 : 分隔
  2. 多个属性之间使用英文 , 分隔
  3. 方法是依附在对象中的函数
  4. 方法名可以使用 "" 或 '',一般情况下省略,除非名称遇到特殊符号如空格、中横线等
let person={
name:'andy',
sayHi:function(){
document.write('hi~~')
  }   
}

对象中的方法访问

声明对象,并添加了若干方法后,可以使用 . 调用对象中函数,我称之为方法调用

注意: 千万别忘了给方法名后面加小括号

let person={
name:'andy',
sayHi:function(){
document.write('hi~~')
  }   
}
person.sayHi()

操作对象

对象本质是无序的数据集合, 操作数据无非就是 增 删 改 查 语法:

查询对象

对象.属性 或者 对象['属性']

对象.方法()

对象添加新的数据

也可以动态为对象添加属性,动态添加与直接定义是一样的,只是语法上更灵活。

对象名.新属性名=新值

重新赋值

对象.属性=值

对象.方法=function()

删除对象中的属性

delete 对象名.属性名

遍历对象

能够遍历输出对象里面的元素

对象没有像数组一样的length属性,所以无法确定长度

对象里面是无序的键值对, 没有规律. 不像数组里面有规律的下标

let obj ={
uname:'andy',
age:18,
sex:'男'
}
for(let k in obj){
console.log(k)   //打印属性名
console.log(obj[k]) //打印属性值
}

⚫ 一般不用这种方式遍历数组、主要是用来遍历对象

⚫ 一定记住: k 是获得对象的属性名对象名[k] 是获得 属性值

内置对象

内置对象是什么

javaScript内部提供的对象,包含各种属性的方法给开发者调用

内置对象Math

Math对象是javascript提供的一个数学高手对象

提供了一系列做数学运算的方法

方法有:

random : 生成0-1之间的随机数(包含0不包括1

Math.floor(Math.random() * (10 + 1))
//生成0-10的随机数
Math.floor(Math.random() * (5 + 1)) + 5
//生成5-10的随机数
5Math.floor(Math.random() * (M - N + 1)) + N
//生成n-m的随机数

ceil : 向上取整

Math.ceil()

floor : 向下取整

Math.floor()

max : 找最大数

Math.max(1,2,3,4,5)

min : 找最小数

Math.min(1,2,3,4,5)

pow : 幂运算

Math.pow(n/m) //n的m次方

abs : 绝对值

Math.abs()

总结:

属性小结

\1. 对象属性有顺序吗?

➢ 没有

\2. 属性和值用什么符号隔开?多个属性用什么隔开?

➢ 属性和值用 : 隔开

➢ 多个属性用,逗号隔开

属性访问小结

  1. 对象访问属性有哪两种方式?

➢ 点形式 对象.属性

➢ [] 形式 对象[‘属性’]

  1. 两种方式有什么区别?

➢ 点后面的属性名一定不要加引号

➢ [] 里面的属性名一定加引号

➢ 后期不同使用场景会用到不同的写法

方法访问小结

  1. 对象访问方法是如何实现的?

➢ 对象.方法()

➢ person.sayHi()

  1. 对象方法可以传递参数吗?

➢ 可以,跟函数使用方法基本一致

遍历对象小结

  1. 遍历对象用那个语句?

➢for in

  1. 遍历对象中, for k in obj,获得对象属性是那个,获得值是那个?

➢ 获得对象属性是 k

➢ 获得对象值是 obj[k]

上午复习回顾

1.访问对象的属性有几种方式?说说

  • 对象.属性
  • 对象['属性']
  • 对象[变量]——有一个前提,变量必须先定义

2.JavaScript 的基本类型有哪些?引用类型有哪些

  • 基本类型:string、number、bool、null、undefined
  • 引用类型:object、function、array

3.JavaScript 中什么情况下会返回 undefined 值,请说出几种场景...

  • 函数定义了形参,没有传实参,显示undefined
  • 对象属性名不存在时,显示undefined
  • 函数写了return,但没有赋值,拿到的是undefined
  • 一个函数没有返回值,默认获取到的返回值是undefined
  • 定义了一个变量没有赋值,默认值也是undefined

补充

  • toLowerCase():把字符串转为小写,返回新的字符串
  • toUpperCase():把字符串转为大写,返回新的字符串

js中没有不区分大小写的api, 我们只能将字符串转换为小写 或者大写再匹配

  • substring():提取字符串中介于两个指定下标之间的字符,包含起始下标位置的字符,但是不起作用

    let sum = '我真的好菜啊'
    console.log(sum.substring(3, 6));
    
  • indexOf(): 返回某个指定的字符串在字符串中第一个出现的索引位置,如果没有查找到则返回-1

    如果找到就返回索引位置,如果没有找到就返回-1

    后期主要应用场景:模糊查询--搜索

    let end=email.indeOf('@') @字符串的第一次出现的索引位置

    let sum = '我真的好菜啊'
    let arr = sum.split('好')
     console.log(arr);
    
  • substr(): 返回从指定下标开始指定长度的子字符串

    substr(1)除了第一个默认到最后 到length

    let sum = '我真的好菜啊'
    console.log(sum.substr(0, 4));
    
  • split():把字符串按指定的字符分割成字符串数组

    let sum = '我真的好菜啊'
    let arr = sum.split('好')
    console.log(arr);