JavaScript基础学习笔记 day04

1.数组

1.1数组的意义及创建

  • 数组:一组数据的集合,将一组数据存储在单个变量
  • 创建方式
		//1、利用new创建数组
        var arr = new Array();
        //2、利用数组字面量创建数组
        var arr = [];//常见用法
        var arr1 = [1,2,'啦啦啦',true];//数组中的数据一定要用逗号分隔开
        //3、数组里面的数据,我们称为元素,数组里的元素可以是任意类型

1.2访问数组元素

  • 数组的索引(下标),用来访问数组元素的序号(从0开始
 		var week = ['周一','周二','周三','周四','周五','周六','周日']
        console.log(week[6]);//周日
  • 扩展
		week.forEach(function(item,index){
            console.log(item);
        });

1.3遍历数组

  • 把数组中的元素从头到尾都访问一遍
  1. 数组名[索引号]
		var color = ['red', 'pink', 'blue', 'green','aqua'];
        console.log(color[0]);//输出red
        console.log(color[3]);//输出green
  1. 通过for循环索引遍历数组
		for (var i = 0; i < color.length; i++) { //使用“数组名.length”可以访问数组元素的数量(数组长度)
            console.log(color[i]);
        }
  1. 注意
    • 因为数组索引号从0开始,所以 i 必须从0开始
    • 输出的时候 i 计数器当索引号来用
    • 此处数组的长度是数组元素的个数 ,不要和数组的索引号混淆
    • 当我们数组里面的元素个数发生了变化,这个** length 属性跟着一起变化**
  2. 案例
		//求数组的和及平均值
        var sum = 0;
        var num = [2, 6, 1, 7, 4];
        for (var i = 0; i < num.length; i++) {
            sum = sum + num[i];//我们加的是数组元素 num[i],不是计数器
        }
        var average = sum / num.length;
        console.log(`这个数组的和是${sum}`);//输出20
        console.log(`这个数组的平均值是${average}`);//输出4
		//求数组的最大值
        var num1 = [2, 6, 1, 77, 52, 25, 7,87,5,95];
        var max = num1[0];
        for(var i = 1; i < num1.length; i++){
            if(num1[i] > max){
                max = num1[i];
            }
        }
        console.log(`这个数组的最大值是${max}`);//输出95

1.4数组中新增元素

  1. 数组中新增元素 修改length长度
		var arr = ['red', 'green', 'blue', 'pink'];
        console.log(arr.length);
        arr.length = 7;//把我们数组的长度修改为了7,里面应该有7个元素
        console.log(arr);
        console.log(arr[4]);//没有赋值,默认是undefined
  1. 数组中新增元素 修改索引号
		arr[4] = 'hotpink';
        arr[5] = 'lightgreen';
        arr[6] = 'aqua';
        console.log(arr[4]);
        console.log(arr[5]);
        console.log(arr[6]);
  1. 注意:如果索引号被占用,原有元素会被替换;不要直接给数组名赋值,否则里面的数组元素都没有了
  2. 案例
		//将数组中大于等于10的数字筛选出来组成新的数组
        //方法一
        var str1 = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7];
        var str2 = [];
        var j = 0
        for(var i = 0; i < str1.length; i++){
            if(str1[i] >= 10){
                //新数组从0开始,依次递增
                str2[j] = str1[i];
                j++;
            }
        }
        console.log(str2);//输出数组[77,52,25]

        //方法二
        var str1 = [2,6, 1, 77, 52, 0, 25, 7,34,6];
        var str2 = [];
        for(var i = 0; i < str1.length; i++){
            if(str1[i] >= 10){
                str2[str2.length] = str1[i];//刚开始str2.length就是0,存了一个值之后,length自动变化
            }
        }
        console.log(str2);//输出数组[77,52,25]

1.5数组案例

  1. 将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的0去掉,形成一个不包含0的新数组
		var str = [2,0,6,1,77,0,52,0,25,7];
        var newstr = [];
        for(var i = 0; i < str.length; i++){
            if(str[i] != 0){
                newstr[newstr.length] = str[i];
            }
        }
        console.log(newstr);//输出数组[2,6,1,77,52,25,7]
  1. 要求: 将数组 [‘red’, ‘green’, ‘blue’, ‘pink’, ‘purple’] 的内容反过来存放
		var color = ['red', 'green', 'blue', 'pink', 'purple'];
        var newcolor = [];
        for(var i = color.length - 1; i >= 0; i--){//for(var i = 0; i < color.length; i++){
            newcolor[newcolor.length] = color[i]//newcolor[i] = color[color.length - i - 1];
        }//}
        console.log(newcolor);

1.6冒泡排序

  • 冒泡排序 ,是一种算法,把一系列的数据按照一定的顺序进行排列显示(从小到大或者从大到小)
		var str = [5, 4, 3, 2, 1];
        for (var i = 0; i < str.length - 1; i++) { //外层循环管趟数
            for (var j = 0; j < str.length - i - 1; j++) { //里层循环管次数
                if (str[j] > str[j + 1]) { //内部交换两个变量的值,前一个和后一个相比较
                    var temp = str[j];
                    str[j] = str[j + 1];
                    str[j + 1] = temp;
                }
            }
        }
        console.log(str);//输出数组[1,2,3,4,5]

2.函数

2.1函数的意义及使用

  • 函数,就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现大量代码的重复使用
  1. 声明函数
		function 函数名() {
            函数体代码
        }
  • 注意:
    1. function 是声明函数的关键字,必须小写
    2. 由于函数一般是为了实现某个功能才定义的,所以通常我们将函数名命名为动词,比如 getSum
  1. 调用函数 函数名()
		function sayHi(){
            console.log('hi~');
        }
        sayHi();
  1. 注意:
    1. 调用的时候千万不要忘记添加小括号
    2. 口诀:函数不调用,自己不执行
    3. 声明函数本身并不会执行代码,只有调用函数时才会执行函数体代码
  2. 函数案例
		//计算1-100的和的值的函数
        function getsum(){//声明一个函数
            var sum = 0;
            for(var i = 1; i <= 100; i++){
                sum += i;
            }
            console.log(sum);
        }
        getsum();//调用函数

2.2函数中的实参与形参

  • 定义:在声明函数时,可以在函数名称后面的小括号中添加一些参数,这些参数被称为形参;在调用该函数时,同样也需要传递相应的参数,这些参数被称为实参
  • 作用,在函数内部某些值不能固定,我们可以通过参数在调用函数时传递不同的值进去
		// 带参数的函数声明
        /* function 函数名(形参1, 形参2, 形参3等) { 形参是接受实参的,类似于一个变量
            函数体
        }
        函数名(实参1, 实参2, 实参3等);   参数可以有也可以没有,个数不限,用逗号分开*/ 
  • 案例
		//利用函数求两个数的和
        function getsum(num1, num2, num3) {
            console.log(num1 + num2 + num3);
        }
        getsum(4, 8,8);//12
        getsum(5,23);//28

2.3补充函数相关

  • 函数参数的传递过程

    1. 调用的时候实参值是传递给形参的
    2. 形参简单理解为:不用声明的变量
    3. 实参和形参的多个参数之间用逗号(,)分隔
    • 函数形参和实参个数不匹配问题

      1. 实参个数与形参个数相同时,输出正确结果
      2. 实参个数大于形参个数时,只取到形参的个数
      3. 实参个数小于形参个数时,多的形参定义为undefined,结果为NaN
    • 注意,在JavaScript中,形参的默认值是undefined

    2.4函数的返回值return

    • return语句,将函数的值返回给调用者
		// 声明函数
        /* function 函数名(){
            return 需要返回的值;
        }
        函数名(); 此时调用函数就可以得到函数体内return 后面的值*/
  • 注意:
    1. 在使用 return 语句时,函数会停止执行,并返回指定的值
    2. 如果函数没有 return ,返回的值是 undefined
  • 案例
		//1、利用函数求任意两个数的最大值
        function getmax(num1,num2){
            return num1 > num2? num1 : num2;
            /* if(num1 > num2){
                return num1;
            }else{
                return num2;
            } */
        }
        console.log(getmax(34,65));  
        console.log(getmax(76,23));
		//2、利用函数求任意一个数组中的最大值
        function getMax(arr){
            var max = arr[0];
            for(var i = 1; i < arr.length; i++){
                if(arr[i] > max){
                    max = arr[i];
                }
            }
            return max;
        }
        var arr1 = [3,5,8,12,54,32,18];
        // var max1 = getMax(arr1);
        // console.log(max1);
        console.log(getMax(arr1));
  • 补充:
    1. 使用return时,函数会停止执行,之后的语句不再执行
    2. return只能返回一个值,有多个值时,返回最后一个

3.一些作业中的案例

  1. 写一个函数,用户输入一个数判断是否是素数,并返弹出回值(又叫质数,只能被1和自身整数的数)
        var num = +prompt('请输入一个正整数');
        function getprime(num){
            for(var i = 2; i < num; i++){
                if(num % i == 0){
                    return '不是';
                }
            }
            return '是';
        }
        console.log(getprime(num));
  1. 简易计算器,用户可以选择计算方法及输入数字
		var choose = prompt('欢迎使用简易计算器:' + '\n' + '1,加法计算;' + '\n' + '2,减法计算' + '\n' + '3,乘法计算' + '\n' + '4,除法计算' +'\n' + '5,退出' + '\n' + '请输入您的选项');
        if (choose == 5) {
            alert('退出');
        } else {
            var num1 = +prompt('请输入第一个数');
            var num2 = +prompt('请输入第二个数');
            alert(getresult(num1, num2));
        }
        function getresult(num1, num2) {
            if (choose == 1) {
                return num1 + num2;
            } else if (choose == 2) {
                return num1 - num2;
            } else if (choose == 3) {
                return num1 * num2;
            } else if (choose == 4) {
                return num1 / num2;
            }
        }
上一篇:Day04-1.分支结构


下一篇:day04:Python学习笔记