javascript 知识点 第四篇 对象

175 阅读3分钟

四 对象

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.获取事件戳    获取的是197011日到现在的毫秒
    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(定时器的编号)    12 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);