另外一种就是通过new Object()构造器函数的形式创建。对象字面量的声明方式比构造器函数更加方便。
通过delete操作符, 可以实现对对象属性的删除操作, 返回值是布尔值
通过点或者方括号可以获取对象的属性值,如果对象上不存在该属性,则会返回undefined。
点获取对象属性值其实是通过."属性名"(属性名是字符串)和["属性名"]一样但和[变量名]不同此时是通过变量的值为属性名访问对象
属性名可以通过in操作符,如果指定的属性在指定的对象或其原型链中,则in 运算符返回true。这种方式的局限性就是无法区分自身和原型链上的属性,在只需要判断自身属性是否存在时,这种方式就不适用了。
hasOwnProperty()只有自身存在该属性时,才会返回true。适用于只判断自身属性的场景。
Object.assgin("目标对象","源对象"),可以通过assgin给对象一次增加多个属性
let obj = {}Object.assgin(obj,{a:1,b:2})
也可以通过点或者方括号修改对象的属性,注意点和查看对象一样
两个都可以查看name是否为obj的属性,in操作符可以查看name属性是否为obj的属性,但是除了会查找自身有没有这个属性还会查找原型链上是否有这个属性,hasOwnProperty只会在自身上查找这个属性。
对象是复杂数据类型,定义了无序键值对的集合
delect obj.name 删除属性名和值
obj.name = undefined 删除属性值
name in obj &&name === undefined 判断含有属性名,但值为undefined
注意 name === undefined 不能判定 name 是否为 obj 的属性
Object.key(obj) 查看对象的所有属性名
Object.values(obj) 查看对象的所有属性值
Object.entries(obj) 查看对象的所有属性名和属性值
console.dir(obj) 查看共有属性和自身属性
name in obj 判断属性名是否存在,不会区分自身属性和共有属性
obj.hasOwnProperty('name') 判断对象自身拥有的属性,不包含共有属性
属性存在则修改,没有则增加
批量赋值,ES6 新出
Object.assign(obj, {p1 = 1, p2 = 2, p3 = 3})
1.date()日期对象:是一个构造函数,必须使用new来调用
2.使用date()var date=new Date()括号里什么都不填表示当前的时间
3.参数的写法:数字型2019,10,1和字符串型'2019-10-1'
3.日期的方法:
getFullYear()当前日期的年
getMonth()当前的月份,范围是0-11,0代表1月份,11代表12月份
getDate()返回的是几号
getDay()返回的是周几
getHours():返回的是小时,范围0-23
getMinutes():返回的是分钟,范围是0-59;
getSeconds():返回的是秒,范围0-59
getTime():返回的是总的毫秒,是从1970年1月1日距离现在的总的毫秒数