《JavaScript 高级程序设计--函数-精品文档资料整理.pptx》由会员分享,可在线阅读,更多相关《JavaScript 高级程序设计--函数-精品文档资料整理.pptx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、JavaScript高级程序设计函数函数预定义函数nparseInt()nparseFloat()nisNaN()nisFinite()nencodeURI()ndecodeURI()nencodeURIComponent()ndecodeURIComponent()neval()预定义函数nencodeURI()、decodeURI()var url=http:/ encodeURIString=encodeURI(url);decodeURI(encodeURIString);nencodeURIComponent()、decodeURIComponent()var url=http:/
2、encodeStr=encodeURIComponent(url);decodeURIComponent(encodeStr);neval()eval(alert(谢宝龙谢宝龙);eval(function func()alert(funstr););Eval is evil!匿名函数n定义:匿名函数就是没有名字的函数,也称为拉姆达定义:匿名函数就是没有名字的函数,也称为拉姆达 (lambda)函数。函数。n声明声明function(arg1,arg2)/函数体函数体回调函数function add(a,b)return a()+b();function ten()return 10;func
3、tion twenty()return 20;var result=add(ten,twenty);回调函数function showConfirm(message,callback)if(confirm(message)callback(true);elsecallback(false);showConfirm(“确定删除吗?确定删除吗?”,function(result)if(result)alert(“确定确定”);elsealert(“取消取消”););自调函数(function()alert(自调函数自调函数);)();(function(name)alert(Hello,+name
4、);)(谢宝龙谢宝龙);自调函数模仿块级作用域function test()for(var i=0;i 3;i+)/这里可以访问这里可以访问 ialert(i);/这里这里也也可以可以访问访问 ialert(i);自调函数模仿块级作用域function test()(function()for(var i=0;i 3;i+)/这里可以访问这里可以访问 ialert(i);)();alert(i);/出错,出错,i 无法访问无法访问!内部(私有)函数function add(num1,num2)if(!checkData(num1)|!checkData(num2)alert(“参数只能是数字!
5、参数只能是数字!”);return;return num1+num2;/内部函数,检测数据类型内部函数,检测数据类型function checkData(num)if(typeof num!=“number”)return false;return true;返回函数function funA()alert(A);return function()alert(B);var funB=funA();funB();/funA()();/连续调用连续调用重写自己的函数function funA()alert(A);funA=function()alert(B);funA();funA();闭包作用域
6、var a=10;/这里能访问这里能访问 afunction funcA()var b=20;/这里能访问这里能访问 a,bfunction funcB()var c=30;/这里能访问这里能访问 a,b,c全局作用域局部作用域a=10b=20局部作用域c=30闭包示例function funA()var a=10;return function()return a;var a=funA();a();闭包循环中的闭包function funA()var a=;for(var i=0;i 3;i+)ai=function()return i;return a;var a=funA();a0();
7、a1();a2();闭包循环中的闭包function funA()function innerFunc(x)return function()return x;var a=;for(var i=0;i 3;i+)ai=innerFunc(i);return a;var a=funA();a0();a1();a2();闭包示例4var getValue,setValue;(function()var num=0;getValue=function()return num;setValue=function(_num)if(typeof _num=number)num=_num;)();getVa
8、lue();setValue(100);闭包迭代器function iterator(arr)var i=0;return hasNext:function()return i arr.length;,next:function()return arrx+;var array=1,2,3,4;var it=iterator(array);while(it.hasNext()it.next();闭包this 对象var name=“The window”;var object=name:“my object”,getName:function()return function()return t
9、his.name;alert(object.getName()();闭包this 对象var name=“The window”;var object=name:“my object”;getName:function()var that=this;return function()return that.name;alert(object.getName();闭包模块模式var singleton=name:value,method:function()/code;闭包模块模式var singleton=function()var privateVariable=10;/私有变量私有变量va
10、r privateFunc=function()/私有方法私有方法return true;return publicFunc:function()/公共方法公共方法privateVariable+;privateFunc();闭包模块模式var Map=function()var keyArray=new Array();var valueArray=new Array();return put:function(key,value)keyArray.push(key);valueArray.push(value);,get:function(key)for(var i=0;i keyArray.length;i+)if(keyArrayi=key)return valueArrayi;