• 04_Javascript初步第二天(下)


    1. 错误对象
          try{
              aa();//这是一个未被定义的方法
          }catch(e){
              alert(e.name+":"+e.message);//输出:ReferenceError:aa is not defined
          }finally{
              alert('我总是被调用');
          }
    2. 对象是通过引用传递的
    3. 数组
      1. 调用时传递一个参数表示数组长度 - var arr=new Array(5)
        超过两个参数则显示指定了数组中的值 - var arr=new Array(1,2,3'name',null,,);
      2. arr.length只能计算索引为非负整数的元素
        1、var arr=[,,] - arr.length的值为2
        2、
            var arr=[1,2,3];
            arr['name']='yolo';//输出3,'name'的索引不是非负整数
            arr[100]='yolo';//输出101,length从0开始计算
            document.write(arr.length);
            
            var arr1=[1,2,3,4,5];
            console.log(arr1.length);//输出5
            console.log(arr1);// 输出 "1,2,3,4,5"
            arr1.length=3;
            console.log(arr1);//输出 "1,2,3",相当于删除了第三个之后的元素,如果要删除所有元素,只需要arr1.length=0;
            Object.defineProperty(arr1,'length',{
                writable:false
            });//将length属性设为不可写的
            arr1.length=0;
            console.log(arr1.length);
      3. push()是用来在数组末端添加项,shift()在移除数组的第一个项(前端),实现队列的先进先出FIFO;pop()在数组末端移除项,unshift()在数组前端添加项;(http://blog.csdn.net/rachel_2016/article/details/52448170

    4. 遍历数组
      for循环遍历下标连续的数组
          var arr=[1,2,'name'];
              for(var i=0;i<arr.length;i++){
                  console.log(arr[i]);
              }
      
      for-in遍历数组,包含继承下来的元素
              var arr=[];
              arr['name']='yolo';
              arr['age']=23;
              for(var i in arr){
                  console.log(arr[i]);
              }
              如果只想遍历自身属性,可以加if条件:if(arr.hasOwnProperty(i))
              
      forEach()遍历数组(E大写),同样只能遍历下标连续的数组
              var arr=[1,2,3]
              arr.forEach(function(x){
                  console.log(x);
              })
      
          var arr=[1,2,3,4];
          arr['name']='yolo';//forEach循环不能遍历到它
          arr.forEach(my);
          function my(element,index,array){
              console.log('要处理的数组为:'+array);
              console.log('元素索引:'+index+"--元素值:"+element);
          }
          输出:
          要处理的数组为:1,2,3,4
          元素索引:0--元素值:1
          要处理的数组为:1,2,3,4
          元素索引:1--元素值:2
          要处理的数组为:1,2,3,4
          元素索引:2--元素值:3

        
    5.  数组的常用函数
      1.  
         var arr=[1,2,11,20];
            console.log(arr.join('-'));//join指定分隔符,输出: "1-2-11-20"
            console.log(arr.reverse());//reverse反转数组,输出: "20,11,2,1"
            console.log(arr.sort());//sort()按照Unicode排序,输出:"1,11,2,20"
            //可以指定排序函数
            arr.sort(function(a,b){
                return a-b;//如果a比b大,返回一个大于0数,此时b排在a前面,即从小到大排序
            });
            console.log(arr);//输出:"1,2,11,20"
            //通过元素属性排序,输出: "enid"     "join"    "yolo"
            var user=[
                {name:'yolo',age:23},
                {name:'enid',age:18},
                {name:'join',age:22},
                
            ];
            user.sort(function(a,b){
                if(a.name>b.name) return 1;
                if(a.name<b.name) return -1;
                return 0;
            });
            for(var i in user){
                console.log(user[i].name);
            }
            
            
                var arr=[1,2];
            res=arr.concat(3,4);//arr.concat([3,4]);
            res=arr.concat([[3,4,5]]);//输出:[1, 2, Array(3)]
            console.log(res);//输出:"1,2,3,4"

            var arr=[1,2,3,4];
            res=arr.slice(0,2);//从数组中截取指定元素,slice(start,length),忽略length,则截取到末尾;输出: "1,2"
            console.log(res);
            
                var arr=['a','b','c','d','e'];
            res=arr.splice(0,1);//从0开始,截取一个元素并返回这个元素,从原数组中删除这个元素
            console.log(res);//输出:"a"
            console.log(arr);//输出:"b,c,d,e"

            var arr=['a','b','c','d','e'];
            var res=arr.splice(2);//从2开始截取到最后
            console.log(res);//输出:"c,d,e"
            console.log(arr);//输出:"a,b"

            var arr=['a','b','c','d','e'];
            var res=arr.splice(0,2,'!','&','?');//从0开始,截取两个元素,额外添加后面的三个元素
            console.log(res);//输出:"a,b"
            console.log(arr);//输出: "!,&,?,c,d,e"
            
            
                var arr=[1,2,3];
            //map每个元素都调用指定函数
            res=arr.map(function(x){
                return x*x;
            });//输出:"1,4,9"
            console.log(res);
            
                var arr=['a!','b','c!'];
            res=arr.map(my);
            function my(x){
                return x.replace(/!/g,'?').toUpperCase();
            };
            console.log(res);//输出:"A?,B,C?"
            
                var arr=[1,3,5,78];
            res=arr.filter(function(x){
                return x<5;
            });
            console.log(res);//输出:"1,3"
            
                    
            var arr=[1,3,5];
            res=arr.reduce(function(a,b){
                return a+b;
            });
            console.log(res);//输出:9
            //解析:第一次传入:1,3    返回4
        //            第二次传入:4,5     返回9

            //every检测是否每个元素都符合条件,some检测是否有一个以上元素符合条件,返回布尔值
            var arr=[1,2,3,18];
            var res=arr.every(function(x){
                return x<=10;
            });
            console.log(res);//输出:false
            
            //indexOf    last
        var arr=['a','b','c','ab','ac','a'];
        var res=arr.indexOf('a');//输出:0
        res=arr.indexOf('A');//不存在,输出-1
        res=arr.indexOf('a',2);//从索引2开始搜索,输出:5
        res=arr.lastIndexOf('a');//输出:5,从最后一个元素开始搜索
        console.log(res);


        Array.isArray(arr);//检测arr是否是一个数组
        arr.toString();//将数组转换为字符串


  • 相关阅读:
    ViewModel和LiveData问题思考与解答
    vps_centos_7_系统环境常规配置备忘
    JVM内存管理&GC
    sping注解
    ibatis order by 防止sql注入
    好用的绿色工具(mss2sql,jd-gui)
    mysql优化
    Spring事务
    好文分享_java堆栈的区别
    Linux usual cmd
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7995087.html
Copyright © 2020-2023  润新知