zoukankan      html  css  js  c++  java
  • JavaScript基础之流程控制语句

    第三部分:流程控制语句

    JavaScript代码是书写位置:

    JavaScript代码应该写在<script type=”text/javascript”></script>这一对标记中。

    或者作为外部引用<script src="JavaScript代码路径"></script>

    JavaScript的每一句代码请用分号作为结束。

    输出语句

    1、控制台输出:console.log();

    它可以在控制台中输出一些信息,输出的信息就是console.log()中圆括号的内容。

    在调试程序的时候回经常用这个语句。

    2、弹出框输出:

    alert();

    使用alert可以在网页上弹出一个提示框显示alert()的圆括号中的信息。

    prompt();

    使用prompt可以在网页上弹出一个输入框,并且以prompt()的圆括号中的信息作为提示信息。

    confirm();

    包含确定和取消的弹出框。

    3、页面输出:document.write();

    直接会将内容显示在页面上。

    选择语句

    if....else语句

    if(判断条件/boolean)
    //满足条件会执行下面的代码

    代码1;

    else {
    //当上面的条件不满足,或者boolean的值为false的时候会执行下面的代码2

    代码2

    }

    此外,else后还可以继续加if判断

    if(判断条件/boolean)
    //满足条件会执行下面的代码

    代码1;

    else if(判断条件) {
    //当上面的条件不满足,或者boolean的值为false的时候会执行下面的代码2

    代码2

    }

    else if(判断条件)

    。。。。。

    else {
    最后代码

    }

    Switch ...case语句

    用来判断多个可能出现的值

    switch 语句与 if 语句的关系最为密切,而且也是在其他语言中普遍使用的一种流控制语句。 

    switch (expression) {
    case value: statement
    break;
    case value: statement
    break;
    case value: statement
    break;
    case value: statement
    break;

    default: statement
    }

    switch 语句中的每一种情形(case)的含义是:如果表达式等于这个值(value),则执行后面的语句(statement。而 break 关键字会导致代码执行流跳出 switch 语句。如果省略 break 关键字,就会导致执行完当前 case 后,继续执行下一个 case。通过为每个 case 后面都添加一个 break 语句,就可以避免同时执行多个 case 代码的情况。

    也可以多种情况混合。

    switch (i) {
    case 25:
    /* 合并两种情形 */
    case 35:
    alert("25 or 35");
    break;
    case 45:
    alert("45");
    break;
    default:
    alert("Other");
    }

    需要注意的是switch 语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,
    字符串"10"不等于数值 10)。

    breakcontinue语句

    break是在循环内部结束合格循环。

    continue是在循环的内部结束本次循环,开始下一次循环:

    循环语句

    for循环是反复执行同一段代码。

    for(var i = 1; 判断条件; i++){
    要循环的代码块:

    }

    当程序运行到for的时候,会先声明一个变量i,并且赋值为1,判断i是否满足后面的判断条件,如果满足,执行下面的要循环的代码块,代码 块执行完成之后再执行i++,再判断判断条件是否满足,如果满足再次按照上面的流程执行,如果不满足,结束for循环。

    for循环还可以用于嵌套,实现复杂的运算,冒泡排序就用到了for循环的嵌套。下面举两个for循环嵌套的例子。

    打印直角三角形,

    for (var i = 1; i <= 10; i++) {

        for (var j = 1; j <= i; j++){

            document.write("☆");

        }

        document.write("<br/>");

    }

    打印99乘法表

    for (var i = 1; i < 10; i++) {

        for (var j = 1; j <= i; j++) {

            document.write(j + "*" + i + "=" + i * j);// 1 * 1 = 1

            document.write(" ");

        }

        document.write("<br/>");

    }

    for in循环

    for-in 用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。

    举个例子

    var x

    var mycars = new Array()

    mycars[0] = "Saab"

    mycars[1] = "Volvo"

    mycars[2] = "BMW"

    for (x in mycars)

    {

    document.write(mycars[x] + "<br />")

    }

    while循环

    while(判断条件/boolean){
    代码块

    }

    当代码执行到while的时候,会先判断判断条件是否为true,如果为true,那么会执行while大括号中的代码块,代码块执行完毕以后,再次回到while中再进行判断,如果为true,再次执行while大括号中的代码块,并且再次回while,如果为false就不执行。

    注意:将来在写代码的时候一定要注意循环的判断条件不能一直为true,否则会成为一个死循环。

    do...while循环

    do-while 语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。
    换句话说,在对条件表达式求值之前,循环体内的代码至少会被执行一次。

    do {
    statement
    } while (expression);

    do...while语句在开发中并不怎么用,用的最多的还是for循环,以及for循环嵌套。

     

    补充:

    Function函数对象

    函数申明式

    function fn(){

        // 函数体

    }

    函数表达式(匿名函数)

    var fn = function(){

        // 函数体

    }

     

    // fn表示函数名称

    // 函数表达式通常又叫匿名函数 因为没有函数名

    函数的调用

    fn();// 注意:函数只申明不调用是不会执行的

    函数的参数

    // 申明

    function 函数名(形参1,形参2,形参3,){

        // 函数体

    }

    // 调用

    函数名(实参1,实参2,实参3);

    函数名(实参1);// 这样写也不会有问题

    函数名(实参1,实参2,实参3,实参4);// 这样写也不会有问题

    // 注意:函数的实参个数可以和形参的个数不同

    函数的返回值

    function 函数名(){

        return 要返回值;

    }

    // 注意:函数不写返回值时默认的返回值是undefined

    函数的递归函数在内部调用自身函数叫递归

    function fn(){

        fn();

    }

    fn();

    函数的回调被当做参数传递的函数叫回调函数

    function fn1(){

        console.log(“我是回调函数”);

    }

     

    function fn2(parameter){

        parameter(); // 调用函数

        // 这里的parameter是形参 代表传进来的函数fn1

    }

     

    fn2(fn1);// fn1就是一个回调函数

  • 相关阅读:
    SpringBoot 添加JSP支持
    SpringBoot的过滤器和拦截器和全局异常处理
    SpringBoot日志配置-logback和log4j2
    SpringBoot使用thymeleaf模板
    乐观锁与悲观锁
    js中的val extinner 的区别
    centos7安装最新版node和npm
    ES2020,你需要知道的一切内容!
    U盘弹出文件或目录损坏且无法读取实测解决教程
    MySQL远程连接丢失问题解决方法
  • 原文地址:https://www.cnblogs.com/thinkguo/p/7452366.html
Copyright © 2011-2022 走看看