js对象

98 阅读4分钟

js对象

对象object:JavaScript里的一种数据类型,它是一种无序的数据集合

对象的使用

声明语法:

let 对象名 = {}

对象由属性和方法组成

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

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

let 对象名 = {    属性名:属性值,    方法名:函数}

属性

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

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

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

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

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

    let stu = { name: '张三', age: 14, isBoy: true, girlfriend: ['李晓红', '小华'], say: function () { console.log("hi"); }}

属性访问

声明对象,并添加了若干属性后,可以使用 . 或 [] 获得对象中属性对应的值,称之为属性访问。 简单理解就是获得对象里面的属性值。

  • 点形式 对象.属性

    let stu = { name: '张三', age: 14, isBoy: true, girlfriend: ['李晓红', '小华'], say: function () { console.log("hi"); }js }console.log(stu.name);

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

    let stu = { name: '张三', age: 14, isBoy: true, girlfriend: ['李晓红', '小华'], say: function () { console.log("hi"); }js }console.log(stu['name']);

两种方式的区别:

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

  • [] 里面的属性名加引号,除非它是一个变量

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

使用对象中的方法

对象.方法()

stu.say()

对象中的方法访问

let stu = {    name: '张三',    age: 14,    isBoy: true,    girlfriend: ['李晓红', '小华'],    say: function () { console.log("hi"); }js    }stu.say()

对象的操作

对象.属性 或者 对象[‘属性’] 对象.方法()

对象.属性 = 值 对象.方法 = function() {}

对象名.新属性名 = 新值

delete 对象名.属性名

增加对象属性

  • 对象名.新的属性名 = 属性值

  • 对象名['新的属性名'] = 属性值

    let person = { name:'lisi', age:18,}person.hobby = '足球'person['sex'] = '男'

新增对象中的方法

  • 对象名.新的函数名 = function(){}

    person.move = function (){console.log('动了一下');}

注:无论是属性或是方法,同一个对象中出现名称一样的,后面的会覆盖前面的。

遍历对象

语法:for(let k in obj){}

let obj = {
    name:'lisi',
    age:18,
}
for(let k in obj){
    console.log(k); //属性名
    console.log(obj[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: '山东省' },    { name: '小花', age: 18, gender: '女', hometown: '广东省' },]
//声明html结构(str)
let str = `<table class="tab">
<caption>学生信息</caption>
<tr>
<th>序号</th>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>家乡</th>
</tr>`
//遍历学生信息的数组
for (let i = 0; i < students.length; i++) {
    str += `<tr> 
<td>${i + 1}</td>`
    //遍历某个学生对象的信息
    for (key in students[i]) {
        str += `<td>${students[i][key]}</td>`
    }
    str += `</tr>`
}
str += `</table>`
//打印html(str)
document.write(str)

内置对象

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

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

内置的数学对象Math

他的方法有:

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

  • ceil:向上取整

  • floor:向下取整

  • max:找最大数

  • min:找最小数

  • pow:幂运算

  • abs:绝对值

拓展- 基本数据类型和引用数据类型

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

  • 值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型 string ,number,boolean,undefined,null

  • 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型 通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等

堆栈空间分配区别

简单数据类型存放到栈里面

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

引用数据类型存放到堆里面

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