函数
一、函数创建
	函数格式:
		function 函数名([参数]...){
			// 函数体 ......
		}
  二、参数设置
	本来以为和Java一样有函数重载这个东西,试了一下发现像 C++中的参数缺省一样;
	只要同名函数调用,所有的重名函数都会被调用;
	function A (a) {
		console.log(a);
	}
	function A () {
		console.log(1);
	}
	console.log(A());
	console.log(A(a));
  三、函数调用
函数的调用和Java C++ C语言都是一样调用 
	函数名(参数......);
  四、作用域
	局部变量:
		一般变量定义,从变量定义 开始 到 最近的 } 结束;
	全局变量:
		var a = 0;	// 显式定义全局变量
		function A(){
			b = 1; 	// 隐式定义全局变量
		}
		这里的 a  和  b 都是 全局变量
  五、匿名函数
	第一种 跟 Java相似,直接定义函数使用 ,我就不提了
	第二种 var fn = function([参数]){}; 
		调用:fn([参数]);
  六、回调函数
	回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数  
	时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条
	件进行响应。
  举几个JavaScript典型函数:
 find()
 every()
 some()
 map()
 还有 forEach() 、reduce()、reduceRight() 等
	这里的小编写的一个 Demo:
		// 移除和2 相等的元素,生成一个新数组
		var arr = [1,2,3,4,2,5,6,2,7,2];
		var a = arr.filter(removeTwo);
		function removeTwo(num){
			return num != 2;
		}
		console.log(a);
  七、闭包函数
	在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭
	包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。其中所引用的变量称作上值(upvalue)。
	注意:
		闭包一词经常和匿名函数混淆。这可能是因为两者经常同时使用,但是它们是不同的概念。
	// Return a list of all books with at least 'threshold' copies sold.
	function bestSellingBooks(threshold) {
	  return bookList.filter(
	      	function (book) { 
	      		return book.sales >= threshold;
	      	}
	   );
	};

京公网安备 11010502036488号