Javascript基本概念(语句和函数)

语句

for语句

  • for语句中的初始化表达式,控制表达式和循环后表达式都是可选的,将这三个表达式省略,就会创建一个无线循环。
  • ECMAScript中不存在块级作用域,因此在循环内容部定义的变量也可以在外部访问到。

for-in语句

主要用来枚举对象的属性(数组也是对象的一种

var obj = {
  a:‘this is a‘, 
  b:‘this is b‘, 
  c:‘this is c‘
};
var arr = [
  ‘arr1‘,
  ‘arr2‘,
  ‘arr3‘
];

for(var o in obj){
  console.log(o + ‘:‘ + obj[o]);  
}
/*结果
  a:this is a
  b:this is b
  c:this is c
*/

for(var k in arr){
  console.log(k + ‘:‘ + arr[k]);  
}
/*结果
  0:arr1
  1:arr2
  2:arr3
*/

 

laber,break和continue语句

label语句可以在代码中添加标签,以便将来使用,通常都要与for语句等循环语句配合使用,配合breakcontinue可以实现不止一次的退出循环操作(普通的break和continue只能退出一次循环

以下是代码的例子

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++;
  }
}
alert(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++;
  }
}
alert(num);  //95
//-------------------------------------------------------------
var num = 0;
outermost:
for(var i=0; i<10; i++){
  for(var j=0; j<10; j++){
    if (i == 5 && j == 5){
      break;
    }
    num++;
  }
}
alert(num);  //95
//-------------------------------------------------------------
var num = 0;
outermost:
for(var i=0; i<10; i++){
  for(var j=0; j<10; j++){
    if (i == 5 && j == 5){
      continue;
    }
    num++;
  }
}
alert(num);  //99

 

switch语句

Javascript中的switch语句很灵活,你可以用它来处理多分支的情况。(注意每个case语句块后都要加上break,除非有意为之,否则执行完一个case语句块后会继续往下执行,知道遇到break

代码如下:

var num = 25;
switch (true) {
	case num < 0:
		alert(‘Less than 0.‘);
		break;
	case num >= 0 && num <= 10:
		alert(‘Between 0 and 10.‘);
		break;
	case num > 10 && num <= 20:
		alert(‘Between 10 and 20.‘);
		break;
	default:
		alert(‘More than 20.‘);
}
//结果是输出 More than 20.

  

函数

提示

语句 return; 返回值是undefined;

理解参数

  • js函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,所有传递进来的参数都可以通过arguments对象来访问,该对象类似数组但不是Array的实例,如第一个参数可以通过arguments[0]访问到,以此类推。
  • arguments对象的length属性可以获知有多少个参数传递给了函数。也正是因为有这个属性,我们可以很方便的模拟js不具备有的函数重载。如:
function doAdd() {
	if(arguments.length == 1) {
		alert(arguments[0] + 10);
	} else if (arguments.length == 2) {
		alert(arguments[0] + arguments[1]);
	}
}
doAdd(10);		//20
doAdd(30, 20); 	//50
  • arguments对象可以与命名参数一起使用,且他们的值保持同步

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。