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();//将数组转换为字符串


04_Javascript初步第二天(下)的更多相关文章

  1. 04_Javascript初步第二天(上)

    全局函数 isFinity() - 检测是否是无穷值(+infinity,-infinity,NaN返回false): isNaN() - 检测是否为数值 encodeURI(uri) - 将字符串编 ...

  2. 【渗透课程】第二篇下-HTTP协议的请求与响应深度剖析

    [渗透课程]第二篇下-HTTP协议的请求与响应深度剖析 HTTP1.1目前支持以下7种请求方法: 常见的MIME类型如下: 第一个数字有五种可能的取值: 目录 什么是请求方法?什么是请求头? HTTP ...

  3. android从放弃到坚持放弃第二课(下)

    续第二课( 下) 续第二课 下 活动的生命周期 返回栈 活动状态 活动的生存期 体验活动的生命周期 活动被回收怎么办 活动的启动模式 standard singleTop singleTask sin ...

  4. Selenium自动化测试第二天(下)

    如有任何学习问题,可以添加作者微信:lockingfree 目录 Selenium自动化测试基础 Selenium自动化测试第一天(上) Selenium自动化测试第一天(下) Selenium自动化 ...

  5. 初步了解Windows7下部署Sonar

    1.准备工具: (1)Sonar 8.3版本. (2)PostgresSql 11版本. (3)Java 11. 详细获取地址可参考文章https://www.pianshen.com/article ...

  6. 《JavaScript权威指南》学习笔记 第二天 下好一盘大棋

    前段学习js的时候总是零零散散的,以至于很多东西都模棱两可.时间稍微一久,就容易忘记.最主要的原因是这些东西,原来学的时候就不是太懂,以至于和其他知识无法形成记忆链,所以孤零零的知识特别容易忘记.重温 ...

  7. 04_Javascript初步第三天

    事件 内联模型.脚本模型,DOM2级模型 <!--内联模型--> <input type="button" value="bt1" oncli ...

  8. 04_Javascript初步第一天

    视频来源:麦子学院[看来是麦子的忠实粉丝] 讲师:King我只是想记住对应的中文翻译:Uncaught SyntaxError: missing ) after argument list//属性列表 ...

  9. Shell编程入门(第二版)(下)

    ... ... command n done #select把关键字中的每一项做成类似表单,以交互的方式执行do和done之间的命令 示例-select.sh [python] view plainc ...

随机推荐

  1. JavaScript(二)基本概念

    JS区分大小写 html/css 中 标签选择器不区分大小写 id class 选择器区分大小写 其中属性名 属性名 属性值  不区分大小写 行间事件  onclick  等  不区分大小写 而  执 ...

  2. ReSharper 全教程

    Resharper系列 更多关于Resharper的介绍 参考我之前的文章: Resharper 详细教程 提升ReSharper和Visual Studio的性能 Visual Studio中使用R ...

  3. 开发 | 微信小程序API-wx.setScreenBrightness/wx.getScreenBrightness

    前言 最近接触了微信小程序 API - wx.setScreenBrightness .wx.getScreenBrightness 接口,调用该接口可以调节并显示手机屏幕亮度数据.对于喜欢腾讯新闻. ...

  4. Gym 101612C Consonant Fencity

    原题传送门 题意:给定一个只含小写字母的字符串,假设aeiouyw为元音字母,现在要把一些字母变为大写,要求相同字母的大小写必须相同,统计变化后的字符串中有多少对相邻.同为辅音字母且大小写不一样的字符 ...

  5. THUSC2016 游记

    浑浑噩噩地就出发了,只记得可以翘课,不知道自己要干什么去. Day 0    5点起床,到潮汕机场坐飞机.第一次坐飞机非常不爽起飞和降落时的加速度……终于还是转转地铁.动车在下午4点左右抵达目的地,西 ...

  6. Codeforces Round #301 (Div. 2)(A,【模拟】B,【贪心构造】C,【DFS】)

    A. Combination Lock time limit per test:2 seconds memory limit per test:256 megabytes input:standard ...

  7. [51nod1502]苹果曼和纸

    苹果曼有很大的一张纸.这张纸的形状是1×n的长方形.你的任务是帮助苹果曼来折叠这一张纸.有一些操作,这些操作有如下两个种形式: 1. 把这张纸在第pi个位置对折.经过对折后,左边的1×pi部分会盖到右 ...

  8. 数位DP入门:(bzoj1833+3209)

    //我是来看文章创建时间的= = 膜拜了一下蔡大神.... 人生第一道自己写的数位DP...好吧以前是看题解然后也不知道为什么就过了的>_< 虽然说现在还是只会裸题= = 数位DP介绍: ...

  9. BZOJ1304: [CQOI2009]叶子的染色

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1304 树形dp. 可以发现其实根选在哪里都是没有问题的. f[u][0],f[u][1],f[ ...

  10. JAVA多线程之CountDownLatch

    前序: 上周测试给开发的同事所开发的模块提出了一个bug,并且还是偶现. 经过仔细查看代码,发现是在业务中启用了多线程,2个线程同时跑,但是新启动的2个线程必须保证一个完成之后另一个再继续运行,才能消 ...