JavaScript02

JavaScript02

个人总结,不足请原谅,如需完整总结或技术探讨请私信;不胜感谢
* ###示例
* 提示用户如如整数:正整数

    var num=parseInt(prompt("请输入一个整数"));
    if(num){
        var i=1;
        while(num>=10){
            num=num/10;
            i++;
        }
        console.log("这个数字是"+i+"位数")
    }else if(num==0){
        console.log("");
    }else{
        console.log("输入有误")
    }

* ###for循环
* ####语法

        for(var i=0;i<length;i++){
            循环体
        }

* ####**执行过程**
    * 首先执行第一个表达式,然后执行第二个表达式,表达式不成立则循环不执行,如果成立,则执行循环体,再执行i++
* ####**案例**
    * #####求1-100之间所有数字的和

            var sum=0;
            for(var i=1;i<=100;i++){
            sum+=i;
            }
            console.log(sum)
    * #####求1-100之间所有奇数的和

            var addSum = 0;
            var evenSum = 0;
            for(var i=0;i<=100;i++){
                if(i%2!=0){
                    addSum+=i;
                }else{
                    evenSum+=i;
                }
            }
            console.log(addSum,evenSum);
    * #####10000本金,0.03利率,五年后获得本金多少

            var money = 10000;//本金
            var rate = 0.03;//利率
            for(var i=0;i<5;i++){
                money+=money * rate;
            }
            console.log(money);
    * #####求斐波那契数列中第七个数字

            var num1 = 1;
            var num2 = 1;
            var sum = 0;
            for(var i = 3;i <= 12;i++){
                sum=num1+num2;
                num1=num2;
                num2=sum;
            }
            console.log(sum);
    * #####1-5数字和

            var sum =0;
            for(var i=1;i<=5;i++){
                sum+=i;
            }
            console.log(sum);
    * #####三角形

            for(var i=1;i<=9;i++){
                for(var j=1;j<=i;j++){
                    document.write("★")
                }
                document.write("<br>")
            }
    * #####乘法表

            for(var i=1;i<=9;i++){
                for(var j=1;j<=i;j++){
                    document.write(j+"*"+i+"="+j*i+"&nbsp;&nbsp;")
                }
                document.write("<br>")
            }
    * #####乘法表(table)

            document.write("<table broder='2'>");
            for(var i=1;i<=9;i++){
                document.write("<tr>");
                for(var j=1;j<=i;j++){
                    document.write("<td>");
                    document.write(j+"*"+i+"="+j*i+"&nbsp;&nbsp;")
                    document.write("</td>");
                }
                document.write("</tr>");
            }
            document.write("</table>");
    * #####计算出1-100之间所有不能被3整除的的整数的和大于或等于2000的数字

            var sum = 0;
            for(var i=1;i<=100;i++){
                if(i%3!=0){
                    sum+=i;
                }
                if(sum>=2000){
                    console.log(i+"和是"+sum);
                    break;
                }
            }

* ###数组
* ####概念

    * 一组数据的组合
* ####**数组作用**

    * 可以一次性存储多个数据(类型可以相同也可以不同)
* ####**数组的元素**

    * 数组中存储的每个数据
* ####**设置和获取数组元素的值**

    * 通过索引(下表)的方式来设置和获取数组中元素的值
* ####**数组的定义**:

        var 变量=[];//字面量方式定义数组
        var 变量=new Array();//构造函数定义数组
        var 变量=new Array(数字);//括号中的数字是数组中的元素个数
* ####**数组的长度**

    * 数组中的元素个数
* ####**注意**:

    * JS中数组的左右元素的值都可以直接输出(其他语言中数组的值都是要通过循环一个个的显示)
    * JS中数组的长度是可以改变的
    * 数组的元素如果可以直接输出,那么每个元素(每个值)都是由逗号隔开
    * 数组的索引是0开始,到元素的个数(数组的长度)减1
* ####**数组的长度**

    * `数组名.length`
* ####**数组元素获取**
    * `数组名[索引]`


        console.log(arr[0])//数组名[索引值]    可以获取对应索引值的元素
        console.log(arr[1])//数组名[索引值]    可以获取对应索引值的元素
        console.log(arr[2])//数组名[索引值]    可以获取对应索引值的元素

        arr[0] = "aaa";
        arr[1] = "aaa";
        arr[2] = "aaa";
        console.log(arr);
* ####**数组元素的遍历**
    * 一个一个的操作。(借助for循环)

        for(var i=0;i<arr.length;i++){
            //for循环中的arr[i]代表的就是数组中的每一个元素
            arr[i] += 123;
             }
        console.log(arr);
* ####**拓展(数组中有很多方法)**

        arr.push("诸葛亮");//在数组的末尾添加元素
        console.log(arr);
        arr.pop();//在数组的末尾删除元素
        console.log(arr);
        arr.unshift("诸葛亮");//在数组的前面加元素
        console.log(arr);
        arr.shift();//在数组的前面删除元素
        console.log(arr);
        //join();concat();split();indexOf();sort();reverse()......

* ####**案例**
    #####* 求数组中的和,平均值,最大值,最小值

            var arr=[10,20,30,40,50];
            var sum=0;//求和
            var avg=0;//平均值
            var max=Number.MIN_VALUE;//最大值,初始存放最小值
            var min=Number.MAX_VALUE;//最小值,初始存放最大值
            for(var i=0;i<arr.length;i++){
                sum+=arr[i];//求和
                if(max<arr[i]){
                    max=arr[i];
                }
                if(min>arr[i]){
                    min=arr[i];
                }
            }
            console.log("最大值是"+max+";最小值是"+min+";和是"+sum+";平均值是"+sum/arr.length)
    #####* 将数组的每个字符串元素用”|”竖线的方式隔开,并输出

            var str="";//用来存储最终字符串
            var arr=[10,20,30,40,50];
            for(var i=0;i<arr.length;i++){
                str+=arr[i]+"|"
            }
            console.log(str+arr[arr.length-1]);
            *
            *
            //第二种
            console.log([10,20,30].join("|"));
    #####* 去掉数组中的0,产生新数组

            var arr=[10,20,0,40,50];
            var arr2 = [];
            var j=0;
            for(var i=0;i<arr.length;i++){
                if(arr[i]!=0){
                       arr2[j]=arr[i];//或者arr2[arr2.length]=arr[i]不用j变量
                    j++;
                }
            }
    #####* 实现反转数组

            //第一种
            var num=[1,2,3,4,5]
            for(var i=num.length-1;i>=0;i--){
                console.log(num[i]);
            }
            *
            *
            //第二种
            var num=[1,2,3,4,5];
            for(var i=0;i<num.length/2;i++){
                var temp=num[i];
                num[i]=num[num.length-1-i];
                num[num.length-1-i]=temp;
            }
            console.log(num);
    #####* 根据输入班级人数依次输入每个人成绩,求总成绩和平均值

            var sum =0;//存储总成绩
            var person = parseInt (prompt("请输入班级人数:"));
            var scores =[];//存储每个人的成绩
            for(var i=0;i<person;i++){
                //提示用户输入成绩,并存储在数组中
                scores[scores.length]=parseInt(prompt("请输入第"+(i+1)+"个同学的成绩"));
                sum+=scores[i];//从数组中取出成绩求和
            }
            for(var i=0;i<scores.length;i++){
                console.log("第"+(i+1)+"个人的成绩是"+scores[i]);
            }
            console.log("总成绩是:"+(sum)+"分,平均成绩是:"+sum/person+"分");
    #####* 随即生成10个1-100内的非重复数字放入数组中。(调用系统方法)
        * 随机数产生`Math.random()`---伪随机数0-1之间
            `console.log(parseInt(Math.random()*100+1));//1-100随机数`
            `arr.indexOf(num)//数组中是否有num这个数,有则返回索引值,没有返回-1`

                var arr = [];//存储随机数的数组
                while(true){//或者while(arr.length<10)
                    var num = parseInt(Math.random()*100+1)//1-100随机数
                    if(arr.indexOf(num) == -1){//判断数组中有没有这个数字
                        arr[arr.length]=num;
                    }
                    if(arr.length==10){
                        break;
                    }
                }
                console.log(arr);
    #####* 求一个工资数组中,员工的最高工资、最低工资、平均工资

            var arr = [2000,2444,5555,6666,7777,8888];
            var sum = 0;
            var max =[0];
            var min = [0];
            for(var i = 0;i<arr.length;i++){
                sum+=arr[i];
                if(max<arr[i]){
                    max=arr[i];
                }
                if(min>arr[i]){
                    min=arr[i]
                }
            }
    #####* 两个数组{ “a”,“b”,“c”,“d”,“e”}和{ “d”, “e”, “f”, “g”, “h” },把这两个数组去除重复项合并成一个。

            var arr1=["a","b","c","d","e"];
            var arr2=["c","d","e","f","g","h"];
            for(var i=0;i<arr1.length;i++){
                if(arr2.indexOf(arr1[i])==-1){
                    arr2[arr2.length]=arr1[i];
                }
            }
            console.log(arr2);

* ###冒泡排序:一组数从大到小或从小到大排序

比较轮数|10|20|30|40|50|每一轮比较次数|.length-1-i
-|-|-|-|-|-|-
第一轮|20|30|40|50|10|比较4次|.length-1-0
第二轮|30|40|50|20|10|比较3次|.length-1-1
第三轮|40|50|30|20|10|比较2次|.length-1-2
第四轮|50|40|30|20|10|比较1次|.length-1-3


    var arr=[20,10,40,50,30];
    //每轮比较的次数
    for(var i=0;i<arr.length-1;i++){
        //每一轮比较的次数
        for(var j=0;j<arr.length-1-i;j++){
            if(arr[j]<arr[j+1]){
                var temp=arr[j];
                arr [j]=arr [j+1];
                arr [j+1]=temp;
            }
        }
    }
    console.log(arr);

* ###函数
* ####概念
* 把一段重复的代码封装起来,在需要的时候调用函数即可

* ####**作用**
    * 代码的重用
* ####**函数名**
    * 遵循驼峰命名法(切记:目前写函数名,首字母不允许用大写字母)

* ####**定义**

        function 函数名{
            代码
        }
        *
        *
        function panDuan(num1){
        var p =/^[a-z]+$/;
        console.log(p.test(num1))
        }
* ####**调用**

        函数名();
        *
        *
        panDuan("dfsf")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值