zoukankan      html  css  js  c++  java
  • JavaScript 语句

    JavaScript 语句:

      1、它是以分号结束的,用来执行以使某件事发生

      2、JavaScript 程序可以看成一系列可执行语句的集合,一般为顺序执行,但我们可以使用条件、循环或跳转语句来改变执行顺序

    JavaScript 语句分类:

      1、表达式语句:诸如赋值和函数调用这些有副作用的表达式,可以作为独立的语句,我们把这种表达式当作语句的用法也称做表达式语句

    // 赋值表达式
    count = 831143;
    // 函数调用
    console.log(count);

      2、复合语句和空语句:我们可以使用花括号将多条语句括起来形成复合语句,而使用分号产生一条空语句

    // 花括号创建复合语句
    {
        x = Math.PI;
        sx = Math.sin(x);
        console.log("sin(PI) = " + sx);
    }
    
    // 分号产生空语句,这里将数组内容全部置为 0
    for (let i = 0; i < arr.length; arr[i++] = 0) ;

    注:JavaScript 为函数作用域,而不是块级作用域,所以语句里声明的变量并不是语句块私有的

     

      3、声明语句:用来声明或定义变量或函数,如 var、let 和 function

    // 声明变量
    var a = 12;
    let b = 4;
    console.log(a/b);
    
    // 声明函数
    function test(num) {
        console.log(num * num);
    }
    test(a);    // 输出 a^2

    注:var 声明的变量无法通过 delete 删除

      4、条件语句:通过判断指定表达式的值来决定执行还是跳过某些语句,包括 if/elseswitch

    // expression 为表达式,statement 是当 expression 为真时执行的语句
    if (expression)
        statement;
    
    // 我们也可以添加 else [if] 语句增加其分支
    if (expression1)
        statement1;
    else if (expression2)
        statement2;
    ...
    else
        statement_else;
    
    // switch 通过 expression 的值来确定执行哪个 case 的语句,case 匹配操作采用 "===" 而不是 "==",所以匹配时不做类型转换
    // 语句里的 break 是可选的,若无 break 它会在匹配的 case 顺序执行下去,直到遇到 break 或 switch 结束时才结束,若所有 case 都不匹配则执行 default
    switch(expression) {
       case 1:
            statement1;
            break;
        case 2:
            ...
        case n:
            statementn;
            break;
        default:
            statement_default;
            break;
    }

      5、循环语句:我们可以把该语句当成程序路径的一条回路,即让一部分代码重复执行

              该类语句包含 whiledo/whileforfor/in

        a、在执行 while 语句之前,JavaScript 解释器首先计算 expression 的值,若它的值为假,则跳过 statement 转而执行下一条语句;

           若值为真,则执行 statement 语句,并重新计算 expression 的值

    // 计算 1 + 2 + ... + 9
    let sum = 0, count = 9;
    while (count > 0) {
        sum = sum+count;
        count--;
    }
    console.log(sum);

        b、do/while 与非常相似,但该语句会先执行 statement 的内容,再进行判断,即该语句循环体至少执行一次

    // 若为 while 循环,则该循环体不会被执行,因为 while 先进行表达式判断
    let num = 0;
    do{
        num = (num+1) * 2;
    }while (num > 0 && num < 100);

        c、for (initialize; test; increment) 先由 initialize 初始化原始值;test 对值进行判断,若假则退出;increment 对该变量进行相应的更新

    // 输出 1^2, 2^2, ..., 9^2
    for (let i = 1; i < 10; ++i) {
        console.log(i * i);
    }

        d、for/in 循环可以用来遍历对象

    // 输出数组元素
    let arr = [1, 2, 3, 4,  5];
    for (let num in arr)
        console.log(num); 

      6、跳转语句:它使程序的执行从一个位置跳转到另一个位置

        a、break:退出最内层循环或 switch 语句

        b、continue:执行下一次循环,只能在循环体内使用

        c、return:指定函数调用后的返回值,只能在函数体内出现,否则报语法错误

        d、throw:用来抛出异常,结束 throw 同一块后面的代码,再由相应 catch 捕获处理

        e、try/catch/finally:用来处理异常,try 尝试执行语句,若有异常,则由 catch 块来处理,finally 中放置清理代码

    注:若 break 和 continue 带标签,则退出或继续相应标签的代码段;

      异常会沿着 JavaScript 方法的词法结构和调用栈向上传播,若未找到对应的异常处理程序,则程序会将该异常当成错误来处理;

      不管 try 块内是否有异常,finally 语句块内的代码总会执行,即使有其他跳转语句跳出 try/catch/finally 语句,finally 仍会在跳出前执行

      7、其他语句:with 和 debugger

        a、with (obj):将 obj 添加到作用域链的头部,然后执行后续代码,最后将作用域链恢复到原始状态

    // with 语句非常难于优化,且与没有使用 with 语句的代码相比,它运行得更慢
    with (document.form[0]) {
        // 等价于 document.form[0].name.vaule = "Lemon"
        name.value = "Lemon";
    }

        b、debugger:用来产生一个断点,代码执行时会停止在断点位置,从而使我们可以调试程序

    function check(obj) {
        if (obj === undefined)
            debugger;
        ...
    }

    注:严格模式下禁止使用 with 语句;debugger 语句不会启动调试器,但如果调试器已经在运行中,这条语句才会真正产生一个断点

  • 相关阅读:
    [LeetCode] 22. Generate Parentheses
    3. Longest Substring Without Repeating Characters
    Python floor() 函数
    Python fabs() 函数
    Python exp() 函数
    Python cmp() 函数
    Python ceil() 函数
    小样本学习综述
    如何评估两张图片的差异
    网络模型mAP计算实现代码
  • 原文地址:https://www.cnblogs.com/lemonyam/p/10854412.html
Copyright © 2011-2022 走看看