数组,日期和对象

94 阅读5分钟

JS中的所有事物都是对象

内置对象,自定义对象

对象是带有属性和方法的特殊数据类型

对象名.属性名称

对象名.方法名称(参数表)

内置对象

    console.log(window);
    

下面是咱们自定义的对象

字面量定义对象

     let obj = {};
      给对象增加name属性 值为张三 
           obj.name = "张三"
      给对象增加fn属性 值是一个函数
        obj.fn = function(){
         console.log('fn')
        }
      console.log(obj);

定义 三个数组 分别是 三组学生的信息 第一组 姓名 年纪 性别 。。。 把三个数组 拼接起来 使用两种方式

数组中的splice方法 可以对数组进行增删改,splice()里面有三个参数

  • 第一个参数表示 你要操作的数组元素的索引

  • 第二个参数表示 你要从你选择的索引开始要删除的个数

  • 第三个参数表示 你要添加的数组元素 let arr = ['张三','李四','王五'];

    删除李四

    arr.splice(1,1) 
    

    把王五修改成丽丽

    arr.splice(2,1,'丽丽') 
    

添加 你想在哪里添加就在哪里添加

把倩倩放在数组索引为2的位置 因为第二个参数是0 所以王五不会被删除

     arr.splice(2,0,'倩倩') 

使用splice在数组的末尾添加 arr.splice(3,0,'倩倩')

在任意数组末尾的位置进行添加

     arr.splice(arr.length,0,'倩倩')
     console.log(arr); 

写一个数组 里面有姓名 年纪 性别 展示在页面上,写三个按钮 点击 可以实现 数组的末尾添加一个信息 删除年纪 修改性别 点击完成之后 数组的最终结果使用alert打印出来

     let arr = ['张三',20,'男'];
     document.write(arr);
     function fn(str){
         if(str=='add'){
             arr.splice(arr.length,0,'奔驰')
             alert(arr)
         }
         if(str=='del'){
             arr.splice(1,1)
    }
         if(str=='update'){
             arr.splice(1,1,'女')
             alert(arr)
         }
     }
     

push在数组的末尾添加一个元素 pop 删除数组的最后一个元素
shift 删除数组的最前面的一个元素 unshift 在数组的最前面添加一个数组

     let arr = ['张三','李四','王五'] 
    arr.pop();
    arr.shift();
   arr.unshift('丽丽')
  

写一个数组 写 4个 按钮可以 对数组的 前后 进行 添加和删除 把结果alert出去

字面量的方式创建数组

    let arr = ['张三','李四','王五'];
    let num = [11,22,33,44]
    console.log(arr); 
    

数组的下标从0开始

构造函数的方式创建

      new Array(size); 
      

表示数组中可存放的元素总数 规定了总数 但是添加一个数 总数也会增加

     new Array()实例化一个数组对象 
      let arr = new Array(3)
     arr = [1,2,3,4] 
     

声明时赋值

     let arr = new Array(1,2,3,4,5,6) 

分别赋值

     let arr = new Array(3);
    arr[0] = 'zhangsan';
    arr[1] = 'lisi';
    arr[2] = 'wangwu' 

通过数组的名称和下标直接访问数组的元素

     console.log(arr[1]); 

     for(var i in arr){
        console.log(arr[i]);
    } 

属性 length 设置或返回数组中元素的数目

     let arr = [1,2,3,4,5]
     console.log(arr.length); 
     join( )	
     把数组的所有元素放入一个字符串,通过一个分隔符进行分隔  把数组转成字符串 
     let newstr = arr.join(); 
     join()里面没有传任何参数 默认以逗号连接 
     join('') 数字中间没有任何字符拼接 
    let newstr = arr.join('+');
      console.log( typeof(newstr) ); 
        console.log(newstr);

sort() 对数组排序

隐式数据类型转换 会字符串类型的转成数字类型进行排序

     let arr = ['2', '3', '1', '5', '0'];

   

let newarr = arr.sort();

sort方法 会把老数组和新产生的数组都进行排序

     console.log(arr, newarr); 

sort()对应多位数排序 会出现问题

     let arr = [2,22,3,32,1,12,100];

sort 给我们提供的解决方法

     arr.sort(function(a,b){
          从小到大的顺序 
          return a-b; 

         从大到小的顺序 
     return b-a;
    })
     console.log(arr);
     

push() 向数组末尾添加一个或更多元素,并返回新的长度 在外面定义的叫全局变量

     let stu = ['小张','小王','小李'];
     console.log(stu); 
     方法里面的叫局部区域 
     function fn(){
          因为stu 是全局的 所以在方法里面 可以获取到 
          数组可以添加重复的数据 
          push也可以添加多个数据 
         let a = stu.push('丽丽','倩倩','雯雯')
         console.log(a);
         console.log(stu);
     }

定义一个空数组 点击添加按钮 可以在空数组里面添加姓名 点击一个添加 可以把数组使用 dw 显示在页面上

     let arr = []
     function fn(){
     arr.push('xiaoa')
     document.write有个缺陷,用按钮点击的时候
      会把整个页面进行重新绘制,导致页面原来的内容丢失  
         document.write(arr);
     }

concat() 合并两个数组

     对原来的两个数组 没有任何改变,会生成一个拼接好的新数组 
     let arr1 = [1,2,3];
     let arr2 = [4,5,6];
     let arr3 = [7,8,9]
     

拼接多个数组

     let newarr = arr1.concat(arr2).concat(arr3);
      console.log('arr1',arr1);
    console.log('arr2',arr2); 
     console.log('newarr',newarr);

es6合并数组 要是用扩展运算符 ... 等同于 [1,2,3] 把arr1的括号去掉,把里面的内容拿出来了

     let newarr = [...arr1]; 
     let newarr = [...arr1,...arr2,...arr3];
    /console.log(newarr);
    

Date 对象用于处理日期和时间

构造函数的方式 let date = new Date();

new Date() 实例化的一个日期对象

会打印出一个当前的日期

     console.log(date); 
     

通过这种方式 可以打印出 过去的时间

     var tdate=new Date("9 1,2017,14:58:12"); 
     var tdate = new Date('2019-10-30 13:20:22') 
     

上面使用一个参数传过去的 在上面的用字符串表示的月份中 9 就代表9月 10 就代表10月

返回 Date 对象的月份,其值介于0~11之间(注:0-1月份)用数字类型,和逗号分割的月份 是从0开始算的,这里8 就代表9月这下面是用 6个参数 分别传过去的,所以和上面的传入的方式不一样产生的结果也不一样

     var tdate = new Date(2018,8,1,13,22,23)
     console.log(tdate); 
     var date = new Date();
     

返回 Date 对象的一个月中的每一天,其值介于1~31之间 获取日期

     console.log( date.getDate() ); 

返回 Date 对象的星期中的每一天,其值介于0~6之间(注:0代表周日)1代表周一 2代表周二 。。 获取星期几

      console.log( date.getDay() ); 

返回 Date 对象的小时数,其值介于0~23之间 24点就是0点

     console.log( date.getHours() ); 

返回 Date 对象的分钟数,其值介于0~59之间 60分就是0

     console.log( date.getMinutes() ); 

返回 Date 对象的秒数,其值介于0~59之间 60秒就是0

     console.log( date.getSeconds() ); 

★特殊 返回 Date 对象的月份,其值介于0~11之间(注:0代表1月份)

     console.log( date.getMonth() ); 

返回 Date 对象的年份,其值为4位数

    console.log( date.getFullYear() );