JavaScript 语句:express
一、它是以分号结束的,用来执行以使某件事发生数组
二、JavaScript 程序能够当作一系列可执行语句的集合,通常为顺序执行,但咱们可使用条件、循环或跳转语句来改变执行顺序函数
JavaScript 语句分类:优化
一、表达式语句:诸如赋值和函数调用这些有反作用的表达式,能够做为独立的语句,咱们把这种表达式看成语句的用法也称作表达式语句spa
// 赋值表达式 count = 831143; // 函数调用 console.log(count);
二、复合语句和空语句:咱们可使用花括号将多条语句括起来造成复合语句,而使用分号产生一条空语句debug
// 花括号建立复合语句 { x = Math.PI; sx = Math.sin(x); console.log("sin(PI) = " + sx); } // 分号产生空语句,这里将数组内容所有置为 0 for (let i = 0; i < arr.length; arr[i++] = 0) ;
注:JavaScript 为函数做用域,而不是块级做用域,因此语句里声明的变量并非语句块私有的调试
三、声明语句:用来声明或定义变量或函数,如 var、let 和 functioncode
// 声明变量 var a = 12; let b = 4; console.log(a/b); // 声明函数 function test(num) { console.log(num * num); } test(a); // 输出 a^2
注:var 声明的变量没法经过 delete 删除orm
四、条件语句:经过判断指定表达式的值来决定执行仍是跳过某些语句,包括 if/else 和 switch对象
// 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; }
五、循环语句:咱们能够把该语句当成程序路径的一条回路,即让一部分代码重复执行
该类语句包含 while、do/while、for 和 for/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);
六、跳转语句:它使程序的执行从一个位置跳转到另外一个位置
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 仍会在跳出前执行
七、其余语句: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 语句不会启动调试器,但若是调试器已经在运行中,这条语句才会真正产生一个断点