【JS学习笔记】JS基础下:函数的讲解

本文介绍了JavaScript中函数的多种声明方式及其使用技巧,包括不同参数传递的特点、递归函数的应用、回调函数的作用以及如何利用对象进行参数配置。此外,还探讨了函数作为返回值的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

晓石头的博客
邮箱:178673693@qq.com
转载请注明出处,原文链接:http://blog.youkuaiyun.com/qiulanzhu/article/details/50583667


(function(){
/*两种声明函数的方式*/
	//1、function 函数名(v1, v2, vn){};这种声明的函数可以在其前后使用
	//2、var fn = function(){};这种声明的函数,只能在定义之后使用

	add1(0,1);
	function add1(x, y){
		document.write(x+y +"<br>");
	}
	add1(1,2);
	//add2(2,3);不能在其声明前使用 
	var add2 = function(x, y){
		document.write(x+y +"<br>");
	}	
	add2(3,4);


/*回调函数*/
	function add3(x, y, fn){
		this.x = x||1;
		this.y = y||1;
		if(fn){
			fn(this.x + this.y);
		}
	}
	add3(1,2,function(v){
		if(v>0){
			document.write("value > 0" +"<br>");
		}else{
			document.write("value <= 0" +"<br>");
		}
	})
	
/*函数传参*/
	function add4(x,y,z){
		this.x = x||0;
		this.y = y||0;
		this.z = z||0;
		document.write(this.x + this.y + this.z +"<br>");		
	}
	add4(1,2,3);
	add4(4,5);//弊端:无法像java等高级语言那样有函数精确复写的特性
	
	//技巧:对象传参
	//conf = {gridName:"",gridCode:"",gridSize:""}
	function gridUtil(conf){
		document.write(conf["gridName"] + " " + conf["gridSize"] +"<br>");
	}	
	gridUtil({gridName:"qiuyi", gridCode:"hello", gridSize:"27"});	
	
/*传值还是传址*/
	//1.基础变量是传递数值的
	var i = 100;
	var s = "one";
	
	function add5(i,s){
		i++;
		s = s + "--";
	}
	add5();
	document.write(i +"<br>");
	document.write(s +"<br>");
	
	//2.自定义对象传递的是地址 
	var obj = {name:"qiu"};
	function change(obj){
		obj["name"] = "yi";
	}
	change(obj);
	document.write(obj.name +"<br>");
	
	function recur(start, end){
		var sum = 0;
		sum = sum + start;
		if(start < end){
			sum = sum + recur(start+1, end);
		}
		return sum;
	}
	document.write(recur(1,100) +"<br>");
	
	
/*代理函数:函数生成函数*/
	var person = {"lily":"wenke", "lucy":"like"};
    function test(name){
		if(person[name] == "wenke"){
			return function(lisi, dili){
				document.write(lisi+ " " + dili +"<br>");
			}
		}
		
		if(person[name] == "like"){
			return function(wuli, huaxue){
				document.write(wuli + " " + huaxue +"<br>");
			}
		}
	}
	test("lily")("lishi.", "dili.");
	test("lucy")("wuli.", "huaxue.");
	
/*eval的应用*/
	//eval:把一个字符串解析成一个方法并调用
	var str = "var show = (function(){document.write(100)})()";
	eval(str);
	document.write("<br>");
	//用于数据库返回一个字符串(格式同javascrip数组)
	var data = "[1,2,3,4,5]";
	var array = eval(data);
	for(i = 0; i < array.length; i++){
		document.write(array[i] + " ");
	}
	
	
	
	
	
	
	
})()






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值