您的位置:首页 > Web前端 > JavaScript

javascript学习(3)——[基础回顾]函数

2013-11-16 14:47 411 查看
简单说下鄙人对js函数的理解,如果只是简简单单的说下函数的话,我想其实并不是特别困难的,但是要是细细的围绕着函数等一系列的周边来说的话,那么真的需要一点时间和精力了,当然本次属于基础回顾,也就简单的说下函数的基本应用了。

我还是想简单的贴几段代码来说明下函数的基本用法,毕竟本次博客是用来说明javascript的高级应用之设计模式的,所以如果有什么不懂得地方,大家可以自己百科了。

/**
* 函数
*/
(function(){
//	function 函数名字(val1,val12,val3,valn){
//		//代码
//		//return
//	}
//	var fn = function(){
//		//代码
//	}
//2中函数声明的区别
/**
* var abc = function(){}
* 只能在函数声明后才能使用
*/
//add(1,1);
function add(x,y){
alert(x+y)
}
//add(1,2);
//add2(12,3)
var add2 = function(x,y){
alert(x+y)
}
add2(12,3)
})()


/**
* 回调函数
* 调用一个函数之后,又会再调用本身传入的一个函数
*/
(function(){
//接收回调函数的函数
function add(x,y,fn){
this.x = x||1;
this.y = y||1;
if(fn){
fn(this.x+this.y);
}
}
add(1,2,function(v){
if(v>0){
alert("re > 0")
}else{
alert("re <= 0")
}
})
})()


/**
* 函数传参
*/
(function(){
//1.参数传递的随意性
function add(x,y,z){
this.x = x||0;
this.y = y||0;
this.z = z||0;
alert(this.x+this.y+this.z)
}
//add(12,3,5)
//add(14,5)
//弊端 : 无法像java等高级语言那有 有函数精确复写的特性
//技巧 : 如果你这个类是工具类的情况下,那没你接收的参数最好是对象
/**
* conf = {gridName:"",gridCode:"",gridSize:""}
*/
function gridUtil(conf){
alert(conf["gridName"]+" "+conf["gridSize"]);
}
gridUtil({gridName:"YUNFENGCHENG",gridSize:10});
//传值还是传址
var i = 100;
var s = "one";
function add3(i,s){
i++;
s+="--";
//alert(i);
}
//add3(i,s);
//alert(i);//100 or 101
//alert(s);//"one" or one--
/**
* 证明 : 基础变量是传递数值的
* 自定义对的传参方式是传得"地址"
*/
//对象
var o = {name:"YUNFENGCHENG"}
function change(o){
o["name"] = "USPCAT.COM"
}
change(o);
alert(o.name)
})()


/**
* 函数递归
*/
(function(){
//常见的编程题 1~100 用递归算法完成累加
function add(start,end){
var num = 0;
num = num + start;
if(start < end){
num = num + add(start+1,end);
}
return num;
}

alert(add(1,100));
})()


/**
* 函数使用技巧
*/
(function(){
//代理函数-->用程序来决定返回的新的函数(他是一个生产函数的函数)
//模拟数据库
var person = {"jim":"m","lili":"w"}
var test = function(name){
if(person[name] == "m"){

/**
* 内科,外科
*/
return function(nk, wk){
alert(nk+"  "+wk)
}

}else if(person[name] == "w"){
/**
* 内科,外科,妇科
*/
return function(nk, wk, fk){
alert(nk+"  "+wk+" "+fk)
}
}
}
test("jim")("ok","ok")
test("lili")("ok","ok","no")
})()


简单介绍下一个功能强大的函数eval

(function(){
//eval 他是把一个字符串解析成一个方法并且调用
var str = "var show = function(){alert(100)}()";
//eval(str)
//数据库会返回一个字符串(长得像javaScrpit数组)
var a = "[1,2]";
var array = eval(a);
for (var i = 0; i < array.length; i++) {
alert(array[i])
}
})()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: