zoukankan      html  css  js  c++  java
  • 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)');
  • 相关阅读:
    联网获取图片, 保存用户的图像 bitmap
    使用 线程池,控制线程 , 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待:
    ImageView属性 android:scaleType="fitXY" ,拉伸图片非常好用
    Activity之间传值,Intent
    退出应用程序 按两次退出键
    修炼-------------Android TabHost,TabWidget选项卡总结
    对TabHost、TabWidget的理解分析
    poj 1847 Tram
    hdu 1874 畅通工程续
    hdu 2544 最短路
  • 原文地址:https://www.cnblogs.com/chenrf/p/4952832.html
Copyright © 2011-2022 走看看