欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript 语句

程序员文章站 2022-04-14 15:29:06
JavaScript 语句: 1、它是以分号结束的,用来执行以使某件事发生 2、JavaScript 程序可以看成一系列可执行语句的集合,一般为顺序执行,但我们可以使用条件、循环或跳转语句来改变执行顺序 JavaScript 语句分类: 1、表达式语句:诸如赋值和函数调用这些有副作用的表达式,可以作 ......

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 = 10;
while (count < 10) {
    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 语句不会启动调试器,但如果调试器已经在运行中,这条语句才会真正产生一个断点