3.6 语句
3.6.1 if
var i = 26
if(i > 25){
console.log('Greater than 25')
}else{
console.log('Less than 25')
}
//Greater than 25
3.6.2 do-while
var i = 0;
do{
i += 2;
}while(i < 3)
//4
3.6.3 while
var i = 0;
while(i<3){
i += 2;
}
//4
3.6.4 for
for(var i = 0; i< 10; i++){
console.log('-->inner:',i); //0~9
}
console.log('-->outer:',i); //10
3.6.5 for-in
- 用于枚举对象的属性
- 如果对象为null或undefined,建议先进行检测
3.6.6 label
- 添加标签
- 一般用于多循环嵌套
- 需要使用描述性标签,不要嵌套过多循环
start:
for(var i = 0; i < count; i++){
console.log(i);
}
3.6.7 break和continue
var num = 0;
for(var i=1; i<10; i++){
if(i%5 == 0){
break;
}
num++;
}
console.log(num); //4
var num = 0;
for(var i=1; i<10; i++){
if(i%5 == 0){
continue;
}
num++;
}
console.log(num); //8
var num = 0;
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i==5 && j==5){
break;
}
num++;
}
}
console.log(num); //100
var num = 0;
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i==5 && j==5){
break; //break相当于退出j循环,但进入了i的下一个循环所以会继续累加,所以只少了5
}
num++;
}
}
console.log(num); //95
var num = 0;
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i==5 && j==5){
continue; //continue相当于退出j循环,但进入了j的下一个循环所以会继续累加,所以只少了1
}
num++;
}
}
console.log(num); //99
var num = 0;
outermost:
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i==5 && j==5){
break outermost; //退出到了最外层
}
num++;
}
}
console.log(num); //55
var num = 0;
outermost:
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i==5 && j==5){
continue outermost;
}
num++;
}
}
console.log(num); //95
3.6.8 with
- 将代码的作用域设置到一个特定的对象中
- 不建议使用:调试困难、性能下降
var local = {
hostname: '192.168.1.1',
port: '8080'
}
var hname = local.hostname,
pt = local.port;
//相当于
with(local){
var hname = hostname,
pt = port;
}
3.6.9 switch
switch(i){
case 25:
/* 合并两种情形 */
case 35:
console.log('25 or 35');
break;
case 45:
console.log('45');
break;
default:
console.log('other');
}
3.7.1 函数
- 参数不是必需,根据arguments.length实现类重载功能
function howManyArgs(){
console.log(arguments.length);
}
howManyArgs("string",5); //2
howManyArgs(); //0
howManyArgs(12); //1
function doAdd(num1, num2){
arguments[1] = 10;
console.log(arguments[0] + num2);
}
doAdd(20,20) //30