函数和初始作用域

  1. 函数

    (1) 编码规则:高内聚,弱耦合(冗余度小)
    (2) 函数是一个特殊类对象
    (3) 函数的表示

     ① 函数声明  function 函数名() {}
     ② 函数表达式(匿名) (表达式会忽略自己的名字)var 变量名 =  function (){}
     ③ 函数名/变量名.name = 函数名
    

    (4) 函数参数

     ① 传参形式说明
    
function demo(a,b){}  ===   function demo(){ var a,b; }

function demo(a,b){}  demo(1,2)  ===  function demo(){ var a = 1,b = 2;}
	  ② 形参和实参的值可以不相对一样多,比如:形参写3个,实参写2个都是可以的

(5) 实参列表(arguments)

	① arguments是一个类数组
	② 在每一函数里面都有一个arguments

(6) 形参长度可以用函数名/变量名.length;实参长度可以用arguments.length
(7)arguments[i]和形参是映射关系,一个变,一个就跟着变;但是前提是实参和形参的个数必须是一样多的,一一对应;如果形参有两个,实参只有一个,那么arguments[1]和形参的第二个是不存在任何映射关系的
(8) 不传参实例练习
利用函数对传进去的任意数进行求和运算

function sum(){
var summation = 0;
for ( var i = 0; i < arguments.length;i++ ){
summation += arguments[i];
}
document.write(summation);
}
  1. 函数返回值(return)
    (1) return语句会终止函数执行并返回函数的值
    (2) 如果函数体内没有return语句,系统会自动将其加到函数体末尾,如果没有返回值,就返回undefined
  2. 实例解析
    (1) 定义一组函数,输入数字,逆转并输出汉字形式
function changeover(){
		var num = window.prompt('请输入数字');
		var len = num.length;
		for( var i = len - 1; i >= 0; i-- ){
			change(num,i);
		}
	}
	changeover();

	function change(num,i){

			 	switch(parseInt(num[i])){
			 	case 0 :
			 	document.write('零')
			 	break;
			 	case 1 :
			 	document.write('壹')
			 	break;
			 	case 2 :
			 	document.write('贰')
			 	break;
			 	case 3 :
			 	document.write('叁')
			 	break;
			 	case 4 :
			 	document.write('肆')
			 	break;
			 	case 5 :
			 	document.write('伍')
			 	break;
			 	case 6 :
			 	document.write('陆')
			 	break;
			 	case 7 :
			 	document.write('柒')
			 	break;
			 	case 8 :
			 	document.write('捌')
			 	break;
			 	case 9 :
			 	document.write('玖')
			 	break;
			 	default:
			 	document.write('你的输入有误');
			}
 	}

(2) 写一个函数实现n的阶乘

var n = parseInt(window.prompt('请输入一个数字'));
function factorial(n){
	if ( n == 1 || n == 0 ){
		return 1;
	}else{
		return n * arguments.callee(n - 1);      //  return n * factorial(n - 1); 
	}
}
document.write(factorial(n));

(3) 写一个函数实现斐波那契数列

var n = parseInt(window.prompt('请输入一个数字,来代表斐波那契数列的项数,第一项为(n为0)'));
	function Fibonacci(n){
		if ( n == 0 || n == 1 ){
			return 1;
		} else{
			return  arguments.callee(n - 1) + arguments.callee(n - 2);
		}
	}
	document.write(Fibonacci(n));
  1. 初始作用域

    (1) 在函数外定义的全局变量可以在函数内被访问,但是,在函数内的定义的局部变量,在函数外,不能被访问;即里面的可以访问外面的,但是外面的不能访问里面的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值