2018-04-21

Javascript基础3

1.数组

  • 数组是一组数据类型
  • 数组可以存储很多项,有顺序,很多项形成一个集合,这个集合就是数组Array;
  • 数组的字面量就是[];
     var Array = [];
    
  • 如何获取数组中的数据

索引/下标 ,数组中的第一项的索引是从0开始;

var names = ['kk','wxf','ps','ps1'];
console.log(names[0]); //'kk'
console.log(names[1]); //'wxf'
console.log(names[2]); //'ps'
console.log(names[3]); //'ps1'
console.log(names[4]);  //underfind

//动态插入/修改元素
names[0]='xxxx';
names[4] ='keke';
console.log(names[0]);
console.log(names[4]);

// 获取数组中的每一项 (遍历数组)
var names = ['kk','wxf','ps','ps1'];
for (var i = 0; i <= names.length; i++){
    console.log(names[i]);
}

// 倒着获取数组中的每一项
 var names = ['kk','wxf','ps','ps1'];
 for (var i =names.length-1;i >=0 ;i--){
     console.log(names[i]);
 }

 //给空数组添加值
 var scrols = [];
     console.log(scrols);
 for(var i = 0;i<10;i++){
     scrols[i] = i;
 }
 console.log(scrols);

 //清空数组
 var names = ['kk','wxf','ps','ps1'];
 names.length = 0;
 console.log(names);
  • 求数组的和和平均值
  var numbers = [35, 12, 35, 90, 11, 12];
  var sum = 0; //定义和为0
  var avg;
  for(var i = 0; i < numbers.length; i++){
      sum += numbers[i] //相加 sum = sum + numbers[i];
  }
  avg = sum / numbers.length;
  console.log('数组中所有数的和'+sum);
  console.log('数组中所有数的平均值'+avg);
  • 求数组中的最大值和最小值
  //方法1
  var numbers = [35, 12, 35, 90, 11, 12];
  var max = numbers[0];
  var min = numbers[0];
  var maxIndex = 0;
  var minIndex = 0;
  for (var i = 0;i < numbers.length; i++){
      if(max < numbers[i]){
          //把最大值赋给比较大的那个数
          max = numbers[i];
          maxIndex = i; //获取索引
      }
      if(min > numbers[i]){
          min = numbers[i];
          minIndex = i;
      }
  }
  console.log('最大值'+max);
  console.log('最大值的索引'+maxIndex);
  console.log('最小值'+min);
  console.log('最小值的索引'+minIndex);

  //方法2
   /* Math是js中的数学方法集合,applay上下文调用后面的课程会详讲;
  Math.max(42,52)取2个值中的最大值 52
  Math.min(42,33)取2个值中的最小值 33
  Math.max.apply(null,arr) 取数组中的最大值
  Math.min.apply(null,arr) 取数组中的最小值*/
  var max1 = Math.max.apply(null,[12,234,45,678,1234,43]);
  var min1 = Math.min.apply(null,[12,234,45,678,1234,43]);
  console.log(max1);
  console.log(min1)
  • 分隔数组(字符串)

1.for循环

var names = ['王五','刘洋','天爸','杨洋','养养眼'];
// 定义一个变量等于数组的第一项
var sum = names[0];
//定义分隔符
var separator = '|';
//循环遍历拼接字符串和分隔符
for(var i = 1;i < names.length;i++){
   sum += separator + names[i];
}
console.log(sum);

2.join() :用分隔符,组合数组,生成字符串

 var names = ['王五','刘洋','天爸','杨洋','养养眼'];
 console.log(names.join('|'));
  • 筛选数组: 将数组中多余的部分去掉,重新组合
  var nums = [12,0,13,34,0,67,0];
  var Array = []
  for(var i = 0; i< nums.length; i++){
      if(nums[i]!==0){
          // array[array.legth] = 1;
          // array[0] = 1;
          //将数字从新插入数组,Array.length相当于索引
       Array[Array.length] = nums[i];
      }
  }
  console.log(Array)
  • 翻转数组:将数组的位置倒过来
  var nums = [12,13,34,0,67];
  var Array = [];
  for (var i = nums.length-1;i >= 0;i--){
      Array[Array.length] = nums[i]; //从后往前交换索引
  }
  console.log(Array);
  • 冒泡排序
   //冒泡排序,从小到大的排序
   var numbers = [35, 12, 36, 90, 11, 18];
   //控制趟数,每一次找到最大的那个数
   for(var i = 0; i < numbers.length-1;i++){
       //内层循环,控制比较的次数把最大的往后移,最小的往前移;
       for(var j = 0; j< numbers.length-1-i;j++){
           if(numbers[j] > numbers[j+1]){
               var temp = numbers[j];
               //交换
               numbers[j] = numbers[j+1];
               numbers[j+1] = temp;
           }
       }
   }
   console.log(numbers)

2.函数:

把一段相对独立的具有特定功能的代码块封装起来,形成一个独立实体,就是函数,起个名字(函数名),在后续开发中可以反复调用.

  • 封装
  • 一次封装多次调用;
  • 手动调用;

1.函数的参数

  • 函数的声明:可以在函数定义前调用
   function 函数名sayHi(){
    函数体
   }
   //调用函数
  //  用函数名调用,可以多次调用
  sayHi();
  • 函数表达式:不可以在函数前调用
      var sayHi(); = function(){
          函数体
      }
      //调用函数
      // 函数名
      sayHi();
  • 函数的形参和实参

形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称之为形式参数,也叫形参。

实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传入的参数叫做实际参数,也叫实参。

  //求1-n之间所有数的和
         var sum = 0;
         //n 形式参数
         function getSum(n){
             for(var i = 0;i <= n;i++){
                 sum += i
             }
             console.log(sum);
         }
         getSum(3);

         //求n-m之间所有数额和
         var sum1 = 0;
         // n1 m 形式参数
         function getSum1(n1,m){
             for(var j = n1;j <= m;j++){
                 sum1 += j;
             }
             console.log(sum1);
         }
         getSum1(1,2);

3.函数的返回值

return 可以拿到函数的结果,返回函数的值
return跳出函数后面的代码不会执行
如果函数没有return则返回undefined;
若你不需要返回值,你直接调用函数即可,不需要用变量来接受它的返回值
console.log(fn()); //第一步调用函数; 第二步打印出来

      //函数返回值的语法
      //声明一个带返回值的函数
      function 函数名(形参1, 形参2, 形参...){
      //函数体
      return 返回值;
      }
      //可以通过变量来接收这个返回值
      var 变量 = 函数名(实参1, 实参2, 实参3);
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • 函数和对象 1、函数 1.1 函数概述 函数对于任何一门语言来说都是核心的概念。通过函数可以封装任意多条语句,而且...
    道无虚阅读 4,511评论 0 5
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,102评论 0 13
  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy阅读 9,498评论 1 51
  • 10月1日,星期日,阴 今天是国庆节,我却上班忙碌了一天。女儿和她舅舅、舅妈、表弟一起回乡下去了。等我晚上下班也回...
    月儿贝贝阅读 221评论 0 0
  • 巡香记,小酒轻酌,许愿轻说,道红尘是非恩怨几多,浮名不尽怎知对与错。 湘菜阁,四人一桌,笙歌落落,论职场干戈宏图云...
    小庶公子阅读 146评论 0 0