四 对象
1.对象的本质
对象是一种数据类型,引用数据类型.
-
是一种数据结构,用于将数据和功能组织在一起(做信息存储)
-
对象:属性和方法
属性相当于对象内部的私有变量
2.创建对象
-
字面量
var obj = {} -
构造函数
var obj = new Object();
3.对象添加属性和方法
读取属性:obj.属性 obj.name = 'xiaoming',
读取方法:obj.方法() obj.play= function(){};
4,删除属性和方法
delete obj.name;
5.遍历对象
for (key in obj){
}
key 是下标
6.值传递和引用传递
-
值传递
传递的是基本数据类型(数据不会发生改变)
原理:常量不可改变
-
引用传递
传递的是对象(数据/对象)
原理:对象存储在堆空间,引用的大部分是地址
基本数据类型:string number boolean null undefined 引用类型(复合类型):object 对象 基本数据类型存储在栈里面 引用数据类型存储在堆里面
7.Json:对象的表现方法(不熟)
是一种轻量级的数据存储格式,存储的是键值对.
json规定 属性和属性值必须放在引号里面.
var xiaoming = {
age:20,
sex:'男',
height:"180",
width:"200",
// 匿名函数
play:function(){
console.log("打篮球")
}
}
console.log(xiaoming);
xiaoming.play();
}
注:添加属性: xiaoming.name = "gao";
注:如果一个对象的属性是在一个变量的情况下,怎么添加属性。
obj[变量名] = 值
var userName = "gao";
xiaoming[userName] = "我是小明"
8.ES6增加
1.ES6中,在对象里面消除了function关键字
2.Object.is(obj1,obj2)//检测两对象的索引是否一致
3.Object.assign(obj1,obj2)
obj1:要合并的对象
obj2:被合并的对象
4.拓展运算符对对象进行合并
对象进行合并:
var obj1 = {
name : 'wwwwww',
age : 20
}
var obj2 = {
sex : 'nan'
}
// var newObj = {...obj1,...obj2};
JSON.stringify(json对象)) 将对象转成字符串
JSON.parse(json字符串) 将字符串转成对象
9.时间对象
- 时间对象API
时间对象API:
1.年份(1970-)
date.getFullYear() 获取
date.setFullYear() 设置
2.月份(0-11) 0代表1月
date.getMonth() 获取 0 - 11
date.setMonth() 设置
3.星期几(0-6) 0代表星期日
date.getDay() 获取
不可设置
4.日(1-31)
date.getDate() 获取
date.setDate() 设置 如果把日期设置为0 的情况下,保存的是上个月的天数
5.时(0-23)
date.getHours() 获取
date.setHours() 设置
6.分钟(0-59)
date.getMinutes() 获取
date.setMinutes() 设置
7.秒(0-59)
date.getSeconds() 获取
date.setSeconds() 设置
8.毫秒(1000毫秒=1秒)
date.getMilliseconds() 获取
date.getMilliseconds() 设置
9.获取事件戳 获取的是1970年1月1日到现在的毫秒
date.getTime();
-
定时器 和 延时器
1.定时器 setInterval(参数1,参数2) 参数1:回调函数 定时器要执行的代码块 参数2:时间 1000ms 2.清除定时器 clearInterval() 参数:可以是定时器的编号,也可以是定时器的名称 ------------------------------------------------------------------------------------------- 1、定时器 1、设置定时器 setInterval(fn,time); 定时器 setInterval(fn,time) 每隔一段时间做某件事事 fn要做的事情(可以是函数名,也可以是 匿名函数) time 越小的话执行fn的频率越快 (fn执行的次数越快) 多个定时器会同步执行 返回定时器的编号(从1累加) var timer = setInterval(fn,1000); 如果不清除定时器,会一直执行 demo: setInterval(function(){ //somecode... },1000); 2、清除定时器 clearInterval(timer) clearInterval(定时器的编号) 1, 2 3 4 。。。 清除定时器肯定是在某种条件下,一般放在if语句中 var timer = setInterval(); //timer 定时器的名字 clearInterval(timer); 2、延时器(定时器) 1、设置延时器 setTimeout(fn,time) 过一段执行一件事情 fn 要做的事情 time 延时的时间(等待多久执行fn) demo: setTimeout(function(){ //延时执行 },time); 2、清除延时器 clearTimeout(延时器名字) var timer = setTimeout(fn,time); clearTimeout(timer);