对象是什么
对象是属性的无序集合
- 每个属性都是一个名/值对。
- 属性名:是标识符或字符串
- 属性值:任意数据类型
let student = {
first
}
关于字符串属性名
- 单引号双引号都可以
- 特殊字符必须加引号
- for关键字必须加引号
对象是js的复杂数据类型
- 对象把很多值聚合在一起:字符串、数值、布尔值、undefined、null、函数、object
创建对象方法
创建对象有三种方法
- 对象字面量:使用花括号包含的一组逗号分隔的名值对。
- 构造函数法
- 原型法
增强的对象字面量语法
- 写入变量:ES2015允许直接写入变量和函数作为对象的属性和方法
- 简写:如果变量名与函数属性名相同,可简写一个属性名
构造函数法
定义
构造函数就是构造函数对象的模板函数。
语法
function Fn(paral,para2){
this.属性名 = 形参1,
this.属性名 = 形参2
}
- Fn:函数名。所有的构造函数名首字母要大写。
- this:在构造函数中的this只是一个占位符
new关键字调用函数的过程 - 使用new调用构造函数时,在内存中创建一个空的对象
- 确定this指向这个空对象
- 执行函数体内的代码,给空对象添加属性
- 返回这个对象
查询的设置属性
概述
读属性
- 点语法
- 方括号语法
写属性
- 点语法
- 方括号语法
示例:一个普通对象
let xiaoming = {
name:'小明',
age:'18',
'e-mail':'134434@qq.com'
}
写属性包括:添加或修改
关联数组
- 对象就是一种关联数组
- 关联数组:以字符串作为索引的数组。
属性访问错误
报错简述:
- 访问不存在的属性是undefined不会报错
- 访问不存在的对象会报错
- 访问unll和undefined的属性会报错
解决方案
删除属性
语法
语法 delete 对象名.属性名
语法 delete 对象名['属性名']
注意:
- delete操作只能删除自身属性,不能删除继承属性
- delete 表达式返回的是布尔值
检测属性
in操作符:检测属性是否存在
语法
'属性名' in 对象
hasOwnProperty():检测属性是否是自有属性
语法:
对象.hasOwnproperty('属性名')