JavaScript 语句

Roy 2019-05-18 01:46109 阅读

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

回复数量: 0
暂无评论~~
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!