javascript笔记整理(回调、递归、内置顶层函数)

1、回调函数(通过函数的指针来调用函数,把一个函数的指针做为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数)

a.通过指针来调用

function aa(a,b,fun){
    return fun(a,b);
}
function bb(a,b){
    return a+b;
}
function cc(a,b){
    return a*b;
}
alert(aa(3,2,bb));    结果:5
alert(aa(3,2,cc));    结果:6

 

b.匿名方法

function aa(a,b,fun){
        return fun(a,b);
}
alert(aa(3,2,function(a,b){return a*b}));    结果:6
alert(aa(3,2,function(a,b){return a+b}));    结果:5

 

 c.定义和调用同时进行

alert(
    (function aa(a,b,fun){
        return fun(a,b);
    })(2,3,function(a,b){return a*b})
)
结果:6

 2、递归函数(在函数内部直接或间接的调用自己)

function abc(num){
    if(num<1){
        num=num;
    }else{
        abc(--num);
    }
    document.write(num);
}
abc(4);        结果:00123    
//5*4*3*2*1
function aa(num){
    if(num==1){
        return num;
    }else{
        return num*aa(--num);
    }
}
alert(aa(5));    结果:120

 

3、内嵌函数(闭包)

function aa(){
    var a=1;
    return function bb(){
        alert(a+1);
    }    
}
aa()();  结果:2

 

 

javascript 内置 顶层 函数

内置:  ECMAscript 

内置函数:ECMAscript 自带的函数--Number() 

宿主函数: BOM    DOM   alert()   prompt()   confirm();

顶层

a.字符串函数:字符串.函数()     

b.数组函数

c.顶层对象的函数,可以作用于任何对象。

************内置顶层函数**************

1.escape()    对字符串进行编码

2.unescape()    对编码的字符串进行解码

3.Number()      转换成数值类型

4.String()      转换成字符串类型  

5.Boolean()     转换成布尔类型

6.parseInt()    将字符串转换为整型

7.parseFloat()  转换为小数

8.isNaN()       判断一个数能否转换为数值类型。

9.isFinite()    判断一个数是否为有穷的数字。将不是有穷的数字或不能转换为数值类型的数返回假。

10.eval()       将字符串转换成javascript命令执行(必须符合javascript语法规范,否则会出错)

eval兼容性问题处理

IE:

eval()        在当前作用域生效

window.eval()    在当前作用域生效(在IE9以上全局生效)

execScript()      在全局生效(只有ie认)

FF:

eval()            在当前作用域生效

window.eval()    在全局生效

function AllEval(str){
    if(typeof str!='string')
        return;
    if(window.execScript){
        window.execScript(str);
    }else{
        window.eval(str);
    }
}
AllEval('var a=1;alert(a)');

 

posted @ 2015-11-10 14:09  羯瑞  阅读(469)  评论(0编辑  收藏  举报