语句statement是JavaScript整句或命令,赋值和函数调用这些有副作用的表达式是可以作为单独的语句的,这种把表达式当作语句的用法也叫做表达式语句,类似的还有声明语句,声明新变量或定义新函数
JavaScript解释器是依照语句的编写顺序依次执行,JavaScript中还有很多是可以改变默认顺序的语句和控制结构:
- 条件(conditional)语句,JavaScript解释器可以根据一个表达式的 值来判断是执行还是跳过,比如if或switch
- 循环(loop)语句,可以重复执行语句,比如while和for
- 跳转(jump)语句,可以让解释器跳转至其他部分继续执行,如break,return和throw
表达式语句
具有副作用的表达式是JavaScript中最简单的语句
赋值语句
greeting = "hello" + name;
递增++或递减--,改变一个变量的值,像执行一条赋值语句一样
counter++;
delete运算符的重要作用是删除一个对象的属性,所有他一般作为语句使用
delete o.x;
函数调用
alert(greeting)
复合语句和空语句
使用花括号将多条语句括起来形成一条复合语句
{
x = Math.PI;
cx = Math.cos(x);
console.log("cos(Π) = "+ cx);
}
//语句块不需要分号结尾,但块中的原始语句要分号结尾
空语句是允许包含0条语句的语句
;
if((a == 0)||(b == 0)); //这行语句后面的分号会导致前面的判断语句毫无作用
注意: 空语句一般用;来表示,但当在for循环、while循环或者if语句后面的分号很不起眼,它不是分隔符,而是作为空语句
声明语句
var和function以及后面加入的let,const都是声明语句,它们声明或定义变量或函数,声明语句本身什么也不做,但它可以通过创建变量和函数,可以更好的组织代码语义
var
var语句用来声明一个或多个变量
var name_1 [ = value_1] [,..., name_n [= value_n]]
var 之后跟随的是要声明的变量列表,列表中的每一个变量都可以带有初始化表达式,用于指定它的初始值
var i ;
var j = 0 ;
var p,q;
var greeting = 'hello' + name;
var x = 2.4,y = Math.cos(0.75),r,theta;
var x = 2,y= x * X;
var x = 2,
f = function(x){return x*x},
y = f(x);
如果var出现在函数内,那它定义的是一个局部变量,作用域就是这个函数,如果在顶层中使用var,那么声明的就是全局变量,且无法通过delete删除
function
关键字function用来定义函数,函数定义也可以写成语句形式
var f = function(x){ return x + 1; }
function f(x) {return x +1 }
函数体是JavaScript语句组成,语句数量不限,但必须要用花括号括起来,在定义函数时,并不执行函数体内的语句,它和调用函数时待执行的新函数对象相关联.
函数声明语句和函数定义表达式包含同样的函数名,但二者不同,两种方式虽然都创建了新的函数对象,但函数声明语句中的函数名时是一个变量名,变量名指向函数对象
并且函数声明语句和var一样,会被提前声明,但与var不同的是,函数声明语句会将函数名称和函数体全部提前,也就是说,脚本中的所有函数和函数中所有嵌套的函数都会在当前上下文中其他代码之前声明
条件语句
条件语句是通过判断指定表达式的值来决定是否执行还是跳过语句.
- if语句
if(expression)//为真执行statement,否就不执行
statement
if(expression)
statement1
else
statement2
- else if
- switch
switch(expression){
statements
}
循环语句
- while
while(expression)
statement
- do while
do
statement
while(expression) //意味着至少执行一次
- for
for(initialize;test;increment)
statement
- for/in
for(variable in object)
statement