老己的JavaScript基础笔记5

25 阅读4分钟

JavaScript基础知识笔记 第五天

对象

一、什么是对象

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

区别于数组,数组是有序的数据集合,而对象是一种无序的数据集合,可以用于详细的描述某个事物。

二、对象使用

1.语法:
let 对象名={}   //{}为对象字面量

eg:

let person={}

2.对象有属性和方法

属性:信息/特征(名词)

eg:

let 对象名={
    方法名:函数
}

方法:功能/行为(动词)

eg:

let 对象名={
    属性名:属性值
}

let obj={
    uname:'pink',
    age:18
}

属性名与属性值中间需用:,多个属性使用,分割,属性名可使用“ ”或‘’,一般可省略,除非名称使用空格之类的特殊符号。

案例

请声明一个产品对象,里面包如下信息:

要求:

商品对象名字: goods

商品名称命名为: name

商品编号: num

商品毛重: weight

商品产地: address

let mi={
      goods:'小米',
      name:'小米10',
      num:'100012816024',
      weight:'0.55kg',
      address:'中国大陆'
    }
3.操作(增删改查)
(1)查

语法:

对象名.属性

eg:

let person={
    uname:'pink'
}
console.log(person.uname)

对于属性名为‘user-name’时,以上语法无法使用

语法:

对象['属性']

eg:

let person={
    'user-name':'pink'
}
console.log(person['user-name'])
(2)改

语法:

对象名.属性=新值

eg:

let person={
    uname:'pink'
}
person.uname='red'
console.log(person.uname)
(3)增

语法:

对象名.新属性=新值

eg:

let person={
    uname:'pink'
}
person.age=18
(4)删(了解)——一般不会对对象进行外部删除操作

语法:

delete 对象名.属性

eg:

let person={
    uname:'pink'
}
delete person.uname

案例

请对产品对象,做如下操作:

要求:

  1. 请将商品名称里面的值修改为: 小米10 PLUS
  2. 新增一个属性颜色 color 为 ‘粉色’
  3. 请依次页面打印输出所有的属性值
let mi={
      goods:'小米',
      name:'小米10',
      num:'100012816024',
      weight:'0.55kg',
      address:'中国大陆'
    }
    //1
    mi.name='小米10 PLUS'
    //2
    mi.color='粉色'
4.对象中的方法

eg:

let person={
    sayhi:function(){
        document.write('hi~')
    }
}
//方法调用
person.sayhi()

可以在方法函数中添加形参和实参

三、遍历对象

eg:

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

·此法主要用于遍历对象

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

·由于 k 是变量, 所以必须使用 [ ] 语法解析

·k 是获得对象的属性名, 对象名[k] 是获得 属性值

案例

需求:请把下面数据中的对象打印出来:

// 定义一个存储了若干学生信息的数组

let students = [
{name: '小明', age: 18, gender: '男', hometown: '河北省'},
{name: '小红', age: 19, gender: '女', hometown: '河南省'},
{name: '小刚', age: 17, gender: '男', hometown: '山西省'},
{name: '小丽', age: 18, gender: '女', hometown: '山东省'}
]
for(let i=0;i<students.length;i++){
    for(let k in students[i]){
        document.write(students[k])
    }
}

四、内置对象

1.内置对象是什么

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

eg:document.write()、console.log()

2.内置对象Math

Math对象包含的方法有:

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

ceil:向上取整

floor:向下取整

max:找最大数

min:找最小数

pow:幂运算

abs:绝对值

3.内置对象——生成任意范围随机数

Math.random()——随机函数,返回一个0-1之间,包括0但不包括1的随机小数

0-10:

Math.floor(Math.random()*(10+1))

5-10:

Math.floor(Math.random()*(5+1))+5

N-M:

Math.floor(Math.random()*(M-N+1))+N

案例

需求:请把 [‘赵云’, ‘黄忠’, ‘关羽’, ‘张飞’, ‘马超’, ‘刘备’, ‘曹操’] 随机显示一个名字到页面中,但是不允许重复显示

①:利用随机函数随机生成一个数字作为索引号

②:数组[随机数] 生成到页面中

③:数组中删除刚才抽中的索引号

let arr=['赵云', '黄忠', '关羽', '张飞', '马超', '刘备', '曹操']
    let num=Math.floor(Math.random()*arr.length)
    document.write(arr[num])
    arr.splice(num,1)

案例

需求:程序随机生成 1~10 之间的一个数字,用户输入一个数字

①:利用随机数生成一个数字

②:需要一直猜,所以需要不断的循环

③:因为条件是结果猜对了,就是判断条件退出,用while循环合适

④:内部判断可以用多分支语句

let num=Math.floor(Math.random()*10)+1
    while(1){
      let unum=+prompt('请输入数字:')
      if(unum>num){
        alert('数字猜大了,继续猜!')
      }else if(unum<num){
        alert('数字猜小了,继续猜!')
      }else if(unum===num){
        alert('猜对了')
        break
      }
    }