语句
表达式语句
1.赋值语句是一类比较重要的表达式语句
greeting = "hello" + name;
i *= 3;复制代码
2.递增运算符(++)和递减运算符(--)
count++;复制代码
3.delete运算符的重要作用是删除一个对象的属性
delete o.x;复制代码
4.函数调用
alert(greeting);
window.close();复制代码
复合语句和空语句
1.复合语句
{
x = Math.PI;
cx = Math.cos(x);
console.log("cos(π)" + cx);
}复制代码
2.JavaScript中没有块级作用域,在语句块中声明的变量并不是语句块私有的
3.当创建一个具有空循环体的循环时,空语句有时是很有用的。
//初始化一个数组a
for(i = 0; i< a.length; a[i++] = 0) ;复制代码
使用了一个单独的分号来表示一条空语句
声明语句
var和function都是声明语句,它们声明或定义变量或函数
1.var
var i; //一个简单的变量
var j = 0; //一个带有初始值的变量
var p,q; //两个变量
var greeting = "hello" + name; //更复杂的初始化表达式
var x = 2.34, 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);复制代码
(1).如果var语句出现在函数体内,那么它定义的是一个局部变量,其作用域就是这个函数。
(2).如果在顶层代码中使用var语句,它声明的是全局变量,全局变量是全局对象的属性,var声明的变量是无法通过delete删除的。
(3).如果var语句中的变量没有指定初始化表达式,那么这个变量的值初始为undefined.
变量在声明它们的脚本或函数中都是有定义的,变量声明语句会被"提前"至脚本或者函数的顶部。但是初始化的操作则还在原来var语句的位置执行,在声明语句之前变量的值都是undefined.
for(var i = 0;i < 10; i++) console.log(i);
for(var i = 0,j = 10; i < 10;i++,j--) console.log(i*j);
for(var i in o) console.log(i);复制代码
多次声明同一个变量是无所谓的
2.function
(1).关键字function用来定义函数
var f = function(x){return x+1;} //将表达式赋值给一个变量
function f(x){return x+1;} //含有变量名的语句复制代码
条件语句
条件语句是通过判断指定表达式的值来决定执行还是跳过某些语句。
1.if
if/else语句通过判断一个表达式的计算结果来选择执行两条分支中的一条
(1).
if(username == null) //如果username是null或者undefined
username = "John Doe"; //对其进行定义
//如果username是null,undefined,false,0,"",或者NaN,那么给它赋一个新值
if(!username) username = "John Doe";
if(!adress){
address = "";
message = "Please specify a mailing address";
}复制代码
(2).当expression为真值时执行statement1,当expression为假值时执行statement2
if(expression){
statement1
}else{
statement2
}复制代码
2.else if
else if 语句并不是真正的JavaScript语句,它只不过是多条if/else语句连在一起时的一种惯用写法。
if(n == 1){
//执行代码块1
}else if(n == 2){
//执行代码块2
}else if(n == 3){
//执行代码块3
}else{
//之前的条件都为false,则执行这里的代码块4
}复制代码
3.switch
switch(n){
case 1: //如果 n === 1,从这里开始执行
//执行代码块1
break; //停止执行switch语句
case 2:
//执行代码块2
break;
case 3:
//执行代码块3
break;
default: //如果所有的条件都不匹配
//执行代码块4
}复制代码
(1).每个case的匹配操作实际上是"==="恒等运算符比较
(2).表达式和case的匹配并不会做任何类型转换
循环
循环语句(looping statement)就是程序路径的一个回路,可以让一部分代码重复执行。
JavaScript中有4中循环语句:while,do/while,for和for/in
最常用的循环就是对数组元素的遍历
(1).while
var count = 0;
while(count < 10){
console.log(count);
count++;
}复制代码
在几乎每一次循环中,都会有一个或多个变量随着循环的迭代而改变。
否则一个初始值为真值的表达式的值永远都是真值,循环也不会结束。
(2).do/while
它是在循环的尾部而不是顶部检测循环表达式,这就意味着循环体至少会执行一次。
function printArray(a){
var len = a.length,i = 0;
if(len = 0){
console.log("Empty Array")
}else{
do{
console.log(a[i])
}while(++i < len);
}
}复制代码
(3).for
A.大部分的循环都具有特定的计数器变量。
B.计数器的三个关键操作是初始化,检测和更新。
for(initialize;test;increment){
statement;
}
initialize;
while(test){
statement;
increment;
}复制代码
C.initialize表达式只在循环开始之前执行一次。
每次循环执行之前会执行test表达式,并判断表达式的结果来决定是否执行循环体,如果test计算结果为真值,则执行循环体中的statement.
最后,执行increment表达式
for(var count=0;count<10;count++){
console.log(count);
}复制代码
D.逗号运算符
var i,j;
for(i = 0, j = 10;i<10;i++,j--){
sum += i *j;
}复制代码
E.用for循环来遍历链表数据结构,并返回链表中的最后一个对象(也就是第一个不包含next属性的对象);
function tail(o){ //返回链表的最后一个节点对象
for(;o.next;o = o.next){ //根据判断o.next是不是真值来执行遍历
return o;
}
}复制代码
(4).for/in
for(variable in object){
statement
}复制代码
A.使用for循环来遍历数组元素
for(var i=0;i<a.length;i++){ //i代表了数组元素的索引
console.log(a[i]); //输出数组中的每个元素
}复制代码
B.for/in循环则是用来更方便地遍历对象属性成员
for(var p in o){ //将属性名字赋值给变量p
console.log(o[p]); //输出每一个属性的值
}复制代码
C.将所有对象属性复制至一个数组中
var o = {x:1,y:2,z:3};
var a = [],i=0;
for(a[i++] in o);复制代码
D.for/in循环可以像枚举对象属性一样枚举数组索引
for(i in a){
console.log(i);
}复制代码
跳转
JavaScript的执行可以从一个位置跳转到另一个位置。
break语句是跳转到循环或者其他语句的结束。
continue语句是终止本次循环的执行并开始下一次循环的执行。
return语句让解释器跳出函数体的执行,并提供本次调用的返回值。
(1).标签语句
通过给语句定义标签,就可以在程序的任何地方通过标签名引用这条语句。
mainloop:while(token != null){
//忽略这里的代码...
continue mainloop; //跳转到下一次循环
//忽略这里的代码...
}复制代码
(2).break语句
单独使用break语句的作用是立即退出最内层的循环或switch语句。
for(var i = 0;i < a.length;i++){
if(a[i] == target){
break;
}
}复制代码
(3).continue语句
它不是退出循环,而是转而执行下一次循环
for(var i = 0;i<a.length;i++){
if(!data[i]){
continue; //不能处理undefined数据
}
total += data[i];
}复制代码
(4).return语句
函数调用是一种表达式,而所有表达式都有值。
函数中的return语句既是指定函数调用后的返回值。
return语句只能在函数体内出现,如果不是的话会报语法错误。当执行到return语句的时候,函数终止执行,并返回expression的值给调用程序。
function square(x){ //一个包含return语句的函数
return x*x; //调用结果为4
}
aquare(2);复制代码
(5).throw语句
所谓异常(exception)是当发生了某种异常情况或错误时产生的一个信号。
(6).try/catch/finally语句
其他语句类型
1.with语句
作用域链(scope chain),一个可以按序检索的对象列表,通过它可以进行变量名解析。
with语句用于临时扩展作用域链
不推荐使用
2.debugger语句
这条语句用来产生一个断点(breakpoint),JavaScript代码的执行会停止在断点的位置,这时可以使用调试器输出变量的值,检查调用栈等。
3.'use strict'
"use strict"是ECMAScript引入的一条指令。指令不是语句(但非常接近于语句)。
JavaScript语句小结
|版权声明:本文为summer博主原创文章,未经博主允许不得转载。