一、Object的概述
ECMAScript 中的对象其实就是一组数据和功能的集合。对象通过 new 操作符后跟对象类型的名称来创建。开发者可以通过创建 Object 类型的实例来创建自己的对象,然后再给对象添加属性和方法。
二、Object的声明
1、使用 new 操作符
let person = new Object();
2、使用对象字面量
let person = {
name: 'Jane' ,
};
在对象字面量表示法中,属性名可以是字符串或数值,比如:
let person = {
"name": "Nicholas",
"age": 29,
5: true
};
注意:数值属性会自动转换为字符串。
访问对象属性使用的是点表示法,也可以用方括号表示法来访问。
console.log(person["name"]); // "Nicholas"
console.log(person.name); // "Nicholas"
注意:在使用中括号时,要在括号内使用属性名的字符串形式。
如果属性名中包含可能会导致语法错误的字符,或者包含关键字/保留字时,也可以使用中括号语法。
person["first name"] = "Nicholas";
通常,点语法是首选的属性存取方式,除非访问属性时必须使用变量。
3、给对象添加方法
可以像添加属性一样给对象添加方法:
let o = {};
o.test = function(){
console.log(1);
}
o.test(); //1
三、增删改查的操作
查
//通过key(属性名)来访问对应的值(属性值)
var obj = {
name: 'kunkun',
age: 24,
sex: 'man',
hobby: ['sing', 'dancing', 'rap', 'basketball'] ,
boyfriend:{
name:'liuwei',
sex:'man',
age:22,
},
};
console.log(obj.name);//kunkun
console.log(obj['age']);//24
console.log(obj.hobby[2]);//rap
增和改
//添加和修改 其实就是设置对应的值
// 如果当前这个key在对应的对象里面可以找到他就修改 如果找不到就是添加
obj.songs='You Beautiful';
obj.songs='You Only Beautiful';
console.log(obj.songs);//'You Only Beautiful'
删
//删除操作 删除里面的属性 delete
delete obj.boyfriend.sex;//man
console.log(obj);
四、this关键字
表示this它是一个对象,特殊的对象会随引用的变化而变化。全局的this 指向window的 ,对象里面函数的this 指向当前对象。
let person = {
name:'kangkang',
age:21,
hobby:'rap',
salary:'15k',
printInformation:function(){
console.log(this);
}
}
person.printInformation();
五、window的两个方法
1、延时器
setTimeout
setTimeout() 方法用来实现一个函数在指定的毫秒数之后运行,返回一个值,这个值可以传递给clearTimeout()用于取消 这个函数的执行。
var times = setTimeout(function(){},1000);
//1000毫秒后执行
clearTimeout(times);
//取消执行
clearTimeout
(延时器id) (清除延时器 销毁对应的延时器)
var id = setTimeout(function(){ //这个id是number类型
console.log('hello')
},1000)
clearTimeout(id)
2、定时器
setInterval
setInterval()方法和setTimeout()一样,只不过这个函数会在指定毫秒数的间隔里重复调用,也返回一个值,这个值传递给clearInterval(),用于取消后续函数的调用。
clearInterval
清除定时器 传对应的id
/var times = setInterval(function(){},1000);
//每隔1000毫秒调用一次function
clearInterval(times);
//取消后续函数执行
注意:
1)不要再setInterval里面套setInterval
1)如果setInterval 套了setInterval 里面的执行时间要比外面的要短
网友评论