Object 对象
数据结构:存储多个数据
一切事物皆对象
声明对象
1.字面量声明
书写格式:关键字 标识符 赋值符号 大括号
let f70 = {};
对象初始化
{ 属性名1:属性值1,
属性名2:属性值2,
方法名1:function(){代码块},
方法名2:function(){代码块},
}
里面可以写多个方法和属性
访问不存在的属性会输出undefined(因为JS会在对象中添加此属性,并赋值undefined)
let f70 = {
one: 5,
two: 6,
three: 7,
four: function () {
this.three--;
this.two++
};
}
console.log(f70.one);//5
console.log(f70.two);//6
console.log(f70.three);//7
f70.four();
console.log( f70.two,f70.three);//7,6
console.log(f70.five);//undefined
2.构造函数创建
书写格式 关键字 标识符 赋值符号 new Object 分号
let f70 = new Object
属性和方法的添加
let f70 = {};
f70.one = 1;
console.log(f70);//{ one: 1 };
f70.two = function(){
this.one++
}
f70.two();
console.log(f70);//{ one: 2, two: [Function] }
若添加一个存在的属性,会把原有的覆盖
为了解决这个问题,会声明一个Symbol类型的变量
声明Symbol变量(后面小括号里面是Symbol变量的注释)
let one = Symbol();
给Symbol变量赋值(告知需要给那个对象加)
f70[one] = 0
使用方式:对象属性名[Symbol变量],
这个使用方式中括号里写字符串就可以找到对象里面的
console.log(f70[one])
console.log(f70["one"])
Symbol 数据(基本数据类型)
let f70 = {
one: 3
}
f70.one = 10;
let two = Symbol();
f70[two] = 0
console.log(f70);//{ one: 10, [Symbol()]: 0 }
console.log(f70[two]);//0
console.log(f70["one"]);//10
属性和方法的修改
let f70 = {
one:3
}
f70.one = 0;
console.log(f70);
属性和方法的删除
删除属性 delete 对象名.属性名
删除方法 delete 对象名.方法名(方法名后不加小括号)
使用被删除的属性会得到undefined,调用被删除的方法会报错
let f70 = {
one: 5,
two: 6,
three: 7,
four: function () {
this.three--;
this.two++
}
}
delete f70.one
delete f70.four
console.log(f70);//{ two: 6, three: 7 }
判断对象中是否存在要查找的键名
let f70 = {
one: 5,
}
console.log(`one`in f70);//true
console.log(`five`in f70);//false
遍历对象
遍历对象的键名,键值,键值对
let f70 = {
one: 5,
two: 6,
three: 7,
four: function () {
this.three--;
this.two++
}
}
for (let item of Object.keys(f70)){
console.log(`键名:${item}`);
}
for (let item of Object.values(f70)){
console.log(`键值:${item}`);
}
for (let item of Object.entries(f70)){
console.log(`键值对:${item}`);
}
对象嵌套
let f70 = {
one: 5,
two:{
three:8,
four:9
}
}
console.log(f70.two.three);//8
内置对象Object
【string字符串】
string的属性
.length字符串的长度
string的方法
.split() 字符串转数组
.trim()去除左右的空格
.trimLeft()去除左边的空格
.trimRight()去除右边的空格
.slice()跟数组的.slice使用方法一样
.substring()跟slice一样
如果有负数会转换成0,把大的放后面
eg:(1,-1) => (1,0)=>(0,1)
.repeat(打印次数)重复输出字符串内容
.toUpperCase()字符串转大写
.toLowerCase()字符串转小写
.startsWith(’’’)判断是不是以"***“开始的
.endWith(’’’)判断是不是以”***"结束的
【Math】
【Date】注:Data数据 Date日期
let date1 = new Date;
console.log(date1);//2020-09-18T07:22:24.849Z
console.log(date1.getFullYear());//2020 年
console.log(date1.getMonth());//8 月 自己减1了(0-11)
console.log(date1.getDate());//18 日
console.log(date1.getHours());//15 小时
console.log(date1.getMinutes());//22 分钟
console.log(date1.getSeconds());//秒