文章标题

来源:互联网 发布:淘宝女装店铺logo设计 编辑:程序博客网 时间:2024/05/17 06:42

  • JavaScript03
    • 回顾
      • while循环特点
      • do-while循环特点
      • for循环特点
    • 函数
      • 函数的参数
      • 形参
      • 实参
      • 传参
      • 注意
      • 返回值
      • 函数的四种表现方式
      • 案例
        • 求两个数的和
        • 求两个数的差
        • 求1-100之间所有数的和
        • 求m-n之间所有数的和
        • 反转数组
        • 求三个数字中的最大值
        • 求数组中的最大值最小值求和
        • 数组排序
        • 求1-100之间所有奇数的和
        • 求一个数字是否是质数
        • 求圆的面积
        • 求8的阶乘
        • 求8以内的阶乘和
        • 求斐波那契数列第八个数字的值
        • 根据年月日求这一天是此年的第几天
      • 函数的两种定义方式
        • 函数声明
        • 函数表达式
    • JS中没有块级作用域
      • 作用域
      • 局部作用域
      • 全局作用域
      • 块级作用域
    • 函数作为参数和返回值使用
      • 函数可以作为参数使用
        • 回调函数
      • 函数可以作为返回值使用
    • arguments对象伪数组

JavaScript03

个人总结,不足请谅解,总结不断进行中,如有技术探讨请私信,不胜感谢(^__^)

回顾

  • while循环特点

    • 先判断,后循环,有肯恩过一次都不循环,一般用在不知道循环次数的需求上
  • do-while循环特点

    • 先循环后判断,至少执行一次循环体内容
  • for循环特点

    • 已知循环次数,与while相同

函数

函数的参数

  • 函数在定义的时候函数名后面的小括号中的变量叫做参数
  • 函数在定义的时候,函数名后面的小括号里的变量不需要使用var声明
  • 函数在调用的时候,传入的值也叫参数

形参

  • 函数在定义的时候函数名后面括号内的参数

实参

  • 函数在调用的时候函数名后面括号内的参数

传参

  • 把实参的值传给形参

注意

  • 在JS中函数的形参个数可以与实参个数不一致

返回值

  • 在函数内部,如果有return,则该函数就有返回值,return后面的内容就是该函数的返回值结果
  • 函数声明了,没有返回值,结果是undefined
  • 函数中return下面的代码不执行
  • return后没有明确的返回值,结果是undefined

函数的四种表现方式

  • 无参数,无返回值
  • 无参数,有返回值
  • 有参数,无返回值
  • 有参数,有返回值

案例

  • 求两个数的和

    function getSum(x,y){    return x+y;}console.log(getSum(20,30));
  • 求两个数的差

    function getSub(x,y){    return x-y;}console.log(getSub(20,30));
  • 求1-100之间所有数的和

     function getSum(){     var sum=0;    for(var i=1;i<=100;i++){        sum+=i;    }    return sum;}console.log(getSum());
  • 求m-n之间所有数的和

    function getSum(m,n){     var sum=0;    for(var i=m;i<=n;i++){        sum+=i;    }    return sum;}console.log(getSum(1,22));
  • 反转数组

    function getArr(arr){    for(var i=0;i<arr.length/2;i++){        var temp=arr[i]        arr[i]=arr[arr.length-1-i]        arr[arr.length-1-i]=temp;    }    return arr;}var ccc=[1,2,3,4,5]console.log(getArr(ccc));
  • 求三个数字中的最大值

    function getMaxNum(x,y,z){    return x>y?(x>z? x:z):(y>z? y:z)}console.log(getMaxNum(1,2,3))
  • 求数组中的最大值,最小值,求和

    function getMaxAndMinAndSum(array){    var sum=0;    var min=array[0];    var max=array[0];    for(var i=0;i<array.length;i++){        if(max<array[i]){            max=array[i];        }        if(min>array[i]){            min=array[i];        }        sum+=array[i];    }    var maxMinSum=[max,min,sum];    return maxMinSum;}var arr=[3,4,25,67,32,32];var array=getMaxAndMinAndSum(arr);console.log("最大值是:"+array[0]+"最小值是"+array[1]+"和是:"+array[2]);
  • 数组排序

    function paiXu(arr){    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;            }        }    }    return arr;}var a=[3,44,56,74,3,2,1]console.log(paiXu(a))
  • 求1-100之间所有奇数的和

    function jiSum(m,n){            m=m||0            n=n||0            var x=m>n?m:n;            var y=m<n?m:n;            var sum=0;            for(var i=y;i<=x;i++){                if(i%2!=0){                    sum+=i;                }            }            return sum;        }        console.log(jiSum())
  • 求一个数字是否是质数

    function isPrime(num){    for(var i=2;i<num;i++){        if(num%i==0){            return false;        }    }    return true;}var flag=isPrime(7)if(flag==true){    console.log("是质数")}else{    console.log("不是质数")}
  • 求圆的面积

    function getS(r){    return Math.PI*r*r;}console.log(getS(5));
  • 求8的阶乘

        function getJie(num){    var result=1;    for(var i=1;i<=num;i++){        result*=i;    }    return result;}console.log(getJie(5));
  • 求8以内的阶乘和

    function getSumJie(num){    var sum=0;    for(var i=1;i<=num;i++){        sum+=getJie(i);    }    return sum;}console.log(getSumJie(5))//求某个数字的阶乘和的结果是极为数字function getWei(num){    var i=1;    while(num>=10){        num/=10;        i++    }    return i;//位数}console.log(getWei(getSumJie(5)));
  • 求斐波那契数列第八个数字的值

    function suLie(a){    var num1=1;    var num2=1;    var sum=0;    for(var i=3;i<=a;i++){        sum=num1+num2;        num1=num2        num2=sum;    }    return sum;}console.log(suLie(8));
  • 根据年月日求这一天是此年的第几天

    //判断年份是不是闰年function isLeapYear(year){   //if(year%4==0&&year%100!=0||year%400==0){}    return year%4==0&&year%100!=0||year%400==0;}function getDays(year,month,day){    var days=day;//记录所有的天数    if(month==1){        return day;    }    //累加所有月份的天数    var months=[31,28,31,30,31,30,31,31,30,31,30,31];    for(var i=0;i<month-1;i++){        days+=months[i];    }    if(month>2&&isLeapYear(year)){        days++;    }    return days;}console.log(getDays(2017,3,2))

函数的两种定义方式

  • 函数声明

    • function 函数名(){}
    • 命名函数:函数有名字
    • 匿名函数:函数没有名字
  • 函数表达式

    • 使用匿名函数声明,赋值给一个变量

      var f1=function (){    console.log()};f1();---function f1(){    console.log("test")}console.log(f1())//undefined---(function (){console.log("test")})();//函数自调用,只能用一次,jQuery

JS中没有块级作用域

  • 作用域

    • 变量(对象)的是用范围
  • 局部作用域

    • 在函数内部声名的变量,函数外面无法访问,这种变量叫局部变量,使用范围在函数中,使用的范围叫局部作用域
  • 全局作用域

    • 在script标签中声明的变量,可以再页面的任何位置访问的到,叫全局变量,适用范围在整个页面
    • 隐藏全局变量

          num=100;//隐藏全局变量:声明变量不使用var    console.log(num);    var num1=10;//全局变量,不可删除    num2=20;//可以删除--不推荐使用    delete num1;删除变量    delete num2;
  • 块级作用域

    • 变量在一对大括号中的使用范围(if语句,for语句,while…)
    • JS中没有块级作用域

函数作为参数和返回值使用

  • 函数可以作为参数使用

    • 回调函数

    • 函数作为其他函数的参数

  • 函数可以作为返回值使用

arguments对象(伪数组)

  • arguments可以获取函数调用的时候传入的参数

    function getSum() {    console.log(arguments.length);//调用函数的时候传入的参数的个数    console.log(arguments[0]);    console.log(arguments[1]);    console.log(arguments[2]);    var sum=0;    for(var i=0;i<arguments.length;i++){        sum+=arguments[i];    }    return sum;}var s=getSum(10,20,100);//调用console.log(s);
0 0