JS_06

一、关键字

1.1、break

概述:关键字break也可以结合循环语句依据适用。它的作用是立刻终止循环

JS_06

 

JS_06

 

 

关键字break的作用就是立刻终止循环语句(跳出循环)。

1.2、关键字continue

概述:关键字continue也可以结合循环语句一起使用,它的作用是立刻终止当前这一次循环然后去执行循环语句的下一次循环

JS_06

 

JS_06

 

关键字continue的作用是跳出当前这一次循环而会执行下一次循环

二、其他循环语句

概述:在JS中,除了for循环语句外,还有while和do...while循环语句

2.1、while循环语句

概述:for和while循环语句称为“前测试循环语句”(先进行条件判断,再执行循环体)

语法格式:

JS_06

 

while循环语句小括号里放的是循环语句判断的条件,(一般需要布尔值,其他类型的数据也可以但需要隐式转换)

当循环体条件判断为真才会执行循环体的代码

JS_06

 

2.2、do...while循环语句

概述:在JS中,do...while循环语句属于“后测试循环语句”(先执行循环体,再进行循环条件判断)

语法:

do{

   ....循环体

}while(判断条件);

注意:由于do...while循环语句先进行循环,所以该循环语句至少进行一次循环,如果不放条件就默认为真,即死循环

问题:在控制台中输出两个随机数字(0~9之间),但是随机的两个数字不能同时为零。

  do{
        var a = parseInt(Math.random()*10);
        var b = parseInt(Math.random()*10);
    }while(a==0&&b==0)
    console.log(a,b);

总结:循环语句for、while、do...while循环语句功能都是解决大量重复性出现语句问题。使用他们三者谁都可以。

三、函数

3.1、函数的简介

概述:函数(function),可以理解为将一个常用的功能进行封装,当想使用这个功能的时候,可以选择调用、执行这个功能。

例:学习过的alert(将警告框的功能进行封装)、prompt(将提示框的功能进行封装)等内置函数

注意:在JS中,函数分为两种,一种是关键字function定义的函数,另一种是表达式形式的函数,函数的使用氛围两部分:声明、调用

3.2、关键字形式的函数

概述:关键字形式的函数需要通过关键字function进行声明和定义

基本语法:

//声明部分

function fun(){

     ....书写封装的功能性代码

}

//调用部分

fun();

函数是属于Object引用类型数据的,虽然使用console.log(typeof fun);打印出的结果是function

如果函数只是声明了而没有调用,则函数体的代码不会执行

3.3、形参与实参

概述:形参(形式参数)、实参(实际参数)

在函数声明的时候,声明部分的小括号里面可以书写形参

在函数调用的时候,调用部分的小括号里面可以书写实参

多个形参和实参之间需要用逗号隔开。

形参是变量,只不过可以不需要用关键字var进行声明;实参可以是任意类型的数据,函数调用时会依次将实参赋值给形参

形参个数不能决定实参数量,等价于变量声明了没有赋值,自动赋值为undefined。如果实参数量比形参多,则形参只会按顺序被前几个实参赋值

注意:用户调用函数的时候,会将实参按照顺序依次赋值给形参。

<script type="text/javascript">

   //声明一个关键字形式函数

   function add (a,b){

    console.log(a,b);

   }

   //调用函数的时候

   add("小明","小白");

   add(1,2);

   add(true,Infinity);

   add();

   add(1);

   add(false,[]);

   add(1,2,3);

</script>

3.4、变量认知

概述:变量,变量可以理解为一个容器,可以承载任意类型的字面数值或者计算完的结果。通过访问变量名字就可以获取到变量存储数据

变量又分为两种,局部变量和全局变量

3.4.1、局部变量

概述:在JS中,局部变量只有两种情况,第一种就是作为函数的形参,第二种情况就是变量在函数体重声明的,而局部变量只能在函数体中使用

3.4.2、全局变量

概述:除了局部变量以外的变量都是全局变量,全局变量可以在JS的行为层任意地方中使用。

3.5、作用域(scope)

3.5.1、scope的定义

概述:作用域可以理解为书写代码的范围。

JS中最大的作用域就是两个script标签之间,这两者之间就是所谓的全局作用域。

函数也有作用域的概念,函数的作用域即为函数体(函数作用域是在全局作用域之间的)

JS_06

 

由于函数作用域中没有局部变量count,因此会沿着作用域链向上寻找,由于全局作用域中有全局变量count,因此函数作用域会借来使用count。

3.5.2、作用域的练习

第一题:

<script type="text/javascript">

  var num = 66;

  //声明关键字形式函数

  function fun (){

       var num = 99;

      console.log(num);

  }

  fun();

</script>

//99

 

JS_06

 

 

第二题

<script type="text/javascript">

  var num = 66;

  //声明关键字形式函数

  function fun (){

       console.log(num);//undefined

       var num = 99;

  }

  fun();

</script>

JS_06

考察点:变量声明部分的提升

在JS中,任何语句都阻挡不了变量声明部分的提升,会提升到当前作用域的最上方

JS_06

 

要注意:任何语句包括if条件语句为假时。因此打印结果仍然为undefined

3.6、关键字return

概述:关键字return一般结合函数进行使用(而且一般在函数体内使用)。而且需要注意,这个关键字一般只能在函数体中使用。

这个关键字的作用是两个:

1.函数体中如果遇见关键字return,函数体中后面语句不再执行

<script type="text/javascript">

    function func (){

           console.log("我是大哥");

           console.log("我是二哥");

           return;

           console.log(‘我是三哥‘);

           console.log("我是四弟");

    }

    func();

</script>

//我是大哥

  我是二哥

函数体中遇见关键字return,函数体中return关键字后面的语句就不再执行了

2.函数体中的关键字return可以将计算完的结果返回(函数体外部可以获取返回的结果)

<script type="text/javascript">

    //关键字return:关键字return可以将函数计算完结果返回

    //声明一个函数

    function bigStart(){

       //声明一个局部变量

       var str = "我是二哈,我可以咬人";

       //将函数体中数据【计算完结果】返回给函数体外面

       //函数体外面可以获取到函数返回结果

       return str;

    }

   var result = bigStart();

   console.log(result);

</script>

关键字return可以将函数体中的数据或者计算完的结果返回。【返回给函数体外部,函数体外部可以访问到这个数据】

<script type="text/javascript">

  //封装一个函数:函数功能是计算两个数字之和

  function add (num,num1){

     return num + num1;

  }

  var result  = add(66,1234);

  var result1 = add(99,1);

  console.log(result);

  console.log(result1);

</script>

3.7、函数的综合练习

概述:函数(function)主要作用是将某一个功能进行封装,可以重复的利用函数的功能。

3.7.1、题一

问题:封装一个函数,功能是判断该数是不是水仙花数,如果是水仙花数字,则返回布尔值真,否则返回布尔值假

<script>
    function isShui(num){
        var ge = num % 10;
        var bai = parseInt(num/100);
        var shi = parseInt(num % 100 /10);
        var shui = Math.pow(ge,3) + Math.pow(shi,3) + Math.pow(bai,3);
        if(shui == num){
           return true;
        }else{
           return false;
        }
    }
    var result = isShui(153);
    console.log(result);
</script>
3.7.2、题二
问题:封装一个函数,功能是可以判断某一个数字是不是完美数字如果是完美数字则返回布尔值真,否则返回布尔值假
           完美数字:约数(不包括自身)之和等于本身。
 
<script>
    function perfectNum(num){
        for(var i = 1 , sum = 0 ; i < num ; i++)
        {
            if(num % i == 0){
                sum += i;
            }
        }
        if(sum == num){
            return true;
        }else{
            return false;
        }
    }
    var result = perfectNum(6);
    console.log(result);
</script>

3.8、表达式形式的函数

概述:在JS中,函数有两种形式,第一种由关键字function定义的函数,第二种就是表达式形式的函数,就是将function定义的函数赋值给变量的形式称之为表达式函数。

<script>
    //函数的声明部分
    var htc = function fun(){
        console.log("我是表达式形式的函数");
    }
    //函数的调用部分
    htc();
    //注意现在调用函数就不是输入函数名fun了,而要输入变量htc
</script>
 注意:表达式函数在调用是是通过变量的名字进行调用,因而在声明时我们可以省略function后面的fun,这样定义的函数称之为匿名函数
3.9、关键字形式函数与表达式形式函数的区别
概述:二者功能都是一样的(都属于函数:都是可以将某一个功能进行封装,当你想用这个功能的时候,调用即可),但是他们在使用的时候有一些注意的事项。
JS_06

 

如果在声明之前写调用:fun(),则会报错,等价于undefined()显然是错误的。

表达式形式的函数只能在声明之后才可以调用,由于变量声明部分的提升(提升到当前作用域的最上方),因此值是undefined
关键字形式的函数可以在声明之前调用。(因为解析器在解析代码的时候,除了可以将变量声明的部分提升到当前作用域的最上方,还可以在遇到关键字形式的函数时,将关键字函数的声明部分提升到当前作用域的最上方。)
 
 
 
 
 
 

JS_06

上一篇:Before the Running of C/C++ Programs


下一篇:详细讲讲netty的pipiline!