语法 :
if ( 条件 ){
//符合条件时执行的代码
}else{
//不符合条件时执行的代码
}
举例:
if ( a > b ) {
console.log('a大于b')
} else {
console.log('a小于b')
}
2.do-while语句
语法:
do {
// 放执行的代码
} while (
// 判断条件
)
举例:
var i = 0 ;
do {
i += 2 ;
} while( i < 10 ) ;
在这个例子中,只要i小于10,就会一直执行下去,每次递增2
注:1.do-while适合至少执行一次的情形
2.要有条件出口,否则会死循环,出现栈溢出的情况
3.while语句
语法:
while ( 条件 ) {
执行的代码
}
举例:
var i = 0 ;
while ( i < 10 ) {
i + = 2 ;
}
注:1.代码在执行前会先进行判断,符合条件执行代码,不符合不会执行
2.要有条件出口,否则会死循环,出现栈溢出的情况
4.for语句
for ( 初始条件,判断条件,改变初始条件) {
// 执行代码
}
示例:
for ( var i = 0 ; i < 10 ; i ++ ) {
console.log ( i ) ;
}
console.log ( i ) // 可在循环外部访问变量,但这里只会输出最终结果10
也可以不在for里面定义变量
var i ;
for ( i = 0 ; i < 10 ; i ++ ) {
console.log ( i ) ;
}
也可以省略三个表达式,会进入无限循环
for ( ; ; ) {
}
5.for-in语句
for ( var propName in window ) {
console.log ( propName ) ; //将window里面的每一个属性赋值给propName,输出顺序根据浏览器不同而不同
}
注:
1.es5之前如果要迭代的变量值是null或者undefined,会报错,es5之后不在报错,会不执行循环体
2.在使用for-of 之前,要确认是否为null或者undefined
3.Safari3之前版本有一个bug,会导致某些属性值返回两次
6.label , break , continue语句
语法 : label : statement ;
描述 : 在js代码中添加标签,以便将来使用,可与break和continue使用,break,continue用于跳出循环,
但两者存在一定区别,break是终止循环,continue是跳出当前循环,进入下一个循环
var i, j;
loop1:
for (i = 0; i < 3; i++) { //The first for statement is labeled "loop1"
loop2:
for (j = 0; j < 3; j++) { //The second for statement is labeled "loop2"
if (i === 1 && j === 1) {
continue loop1;
}
console.log('i = ' + i + ', j = ' + j);
}
}
// Output is:
// "i = 0, j = 0"
// "i = 0, j = 1"
// "i = 0, j = 2"
// "i = 1, j = 0"
// "i = 2, j = 0"
// "i = 2, j = 1"
// "i = 2, j = 2"
// Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2"
var i, j;
loop1:
for (i = 0; i < 3; i++) { //The first for statement is labeled "loop1"
loop2:
for (j = 0; j < 3; j++) { //The second for statement is labeled "loop2"
if (i == 1 && j == 1) {
break loop1;
}
console.log("i = " + i + ", j = " + j);
}
}
// Output is:
// "i = 0, j = 0"
// "i = 0, j = 1"
// "i = 0, j = 2"
// "i = 1, j = 0"
// Notice the difference with the previous continue example
7.with语句
语法 : with(expression) statement
var qs = location.search.substring(1);
var hostName = location.hostName;
var url = location.href;
如果使用with语句的话:
with(location){
var qs = search.substring(1);
var hostName = hostName;
var url = href;
}
说明: 使用with语句关联了location对象,意味着在with语句代码块内部,每个变量首先会被认为是一个局部变量,
而如果局部变量如股票找不到变量的定义,会查询location对象中是否有同名属性,如果有,以location
对象属性的值作为变量的值
注:
1.严格模式下不能使用with,会视为语法错误
2.大量使用with语句会导致性能低下,也会给调试代码造成困难
8.switch语句
语法:
switch(expression){
case value : statement
break ;
case value : statement
break ;
default : statement
}
说明:
1.相当于执行了很多个if-else语句
2.每一个case含义:如果表达式等于这个值,则执行后面的代码
3.break用于跳出switch语句,如果没有break的话,执行完当前case,会接着执行下一个case
4.default用于表达式不匹配前面任何一种情况时执行的代码
5.可以在switch语句中使用任何数据类型
6.case的值不一定是常量,可以是变量,甚至是表达式