zoukankan      html  css  js  c++  java
  • 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();//将数组转换为字符串


  • 相关阅读:
    node
    github
    [模块] pdf转图片-pdf2image
    python 15 自定义模块 随机数 时间模块
    python 14 装饰器
    python 13 内置函数II 匿名函数 闭包
    python 12 生成器 列表推导式 内置函数I
    python 11 函数名 迭代器
    python 10 形参角度 名称空间 加载顺序
    python 09 函数参数初识
  • 原文地址:https://www.cnblogs.com/yolo-bean/p/7995087.html
Copyright © 2011-2022 走看看