语句
- 把表达式当做语句的用法称作表达式语句。
- 声明语句用来声明新变量或定义新函数。
复合语句和空语句
- Javascript中可以将多条语句联合在一起,形成一条复合语句。只需用花括号将多余语句括起来即可。
// 需要注意的
/*
1、语句块的结尾不需要分号。块中的原始语句必须以分号结束,但语句块不需要。
2、语句块中的行都有缩进,容易理解
3、Javascript中没有块级作用域,在语句块中声明的变量不是语句块私有的。
*/
{
x = Math.PI;
cx = Math.cos(x);
console.log(11);
}
- 空语句允许包含0条语句的语句
;
// 初始化一个数组
for(i = 0;i<a.length;a[i++]=0);
声明语句
var和function都是声明语句,它们声明或定义变量或函数。
var
- 关键字var之后跟随的是要声明的变量列表,列表中的每一个变量都可以带有初始化表达式,用于指定它的初始值。
- 如果var语句出现在函数体内,那么它定义的是一个局部变量,其作用域就是这个函数。如果在顶层代码中使用var语句,它声明的是全局变量。(var声明的全局变量是无法通过delete删除的)
- 如果var语句中的变量没有指定初始化表达式,那么这个变量的值初始为undefined。
function
- 函数声明和函数表达式
- 使用var声明的函数,只有变量声明提前了---变量的初始化代码仍然在原来的位置。
- 函数声明语句的话,函数名称和函数体均提前。脚本中的所有函数和函数中所有嵌套的函数都会在当前上下文中其他代码之前声明。也就是说,可以在声明一个Javascript函数之前调用它。
- 函数声明提前声明+定义。函数表达式只声明未定义。
条件语句
if
- else if语句并不是真正的Javascript语句,它只不过是多条if/else语句连在一起时的一种惯用写法。
switch
switch(expression){
statements
}
- 当执行这条switch语句的时候,它首先计算expression的值,然后查找case子句中的表达式是否和expression的值相同(这里的“相同”是按照“===”运算符进行比较的)
for/in
- for/in 循环并不会遍历对象的所有属性,只有“可枚举”(enumerable)的属性才会遍历到
- 对象可以继承其他对象的属性,那些继承的自定义属性也可以使用for/in枚举出来。
- 如果for/in的循环体删除了还未枚举的属性,那么这个属性将不会再枚举到。如果循环体定义了对象的新属性,这些属性通常也不会枚举到。
跳转
- break语句是跳转到循环或者其他语句的结束
- continue语句是终止本次循环的执行并开始下一次循环的执行。
- return语句让解释器跳出函数体的执行,并提供本次调用的返回值。
- throw语句触发或者"抛出"一个异常,它是与try/catch/finally语句一同使用的,这些语句指定了处理异常的代码逻辑。