zoukankan      html  css  js  c++  java
  • JS 笔记(二)

    1. 函数的 声明

    1) 声明式写法

    function j1(id){
        alert(id);   
    }

    2) 声明匿名函数变量

    var j2 = function (a, b) { 
      alert(a + " " + b);
    };

    3) 实例化函数对象

    var j3 = new Function("a", "b", "alert(a+' '+b);");//大写,为内置函数
    // 前面几个是参数名(个数无限制),最后一个是函数体

    函数声明注意事项

    1) 函数以function开头,不需声明返回值类型、参数类型

    2) 不要与系统函数(JS内置、DOM内置方法)重名:如selectAll、focus

    3) JS中不像C#那样要求所有路径都有返回值,没有返回值就是undefined

    4) 程序执行前会先挑出命名函数,所以对于重名函数,以最后一个定义的为准,不考虑函数位置;而匿名函数不会提前搜索,按代码顺序执行

    5) arguments对象,方法声明时的参数叫命名参数(方便用户使用),即便没有命名参数,通过arguments对象可以获得用户传递进来的所有参数。方法调用时传递进去的参数都保存在arguments对象(该对象把参数封装在一个数组内)中

    6) 动态为方法传递参数,类似于.net中的params关键字作用

    JavaScript很酷的一点:声明函数时不需要列出那些函数的所有参数。所以即使你的函数声明是showTab(),但调用这个函数时还可以为它传入参数。

    弊端:会遗漏或忽视传入函数的参数。

    虽然可以不必列出JS函数需要的所有参数,但是,如果确实希望在函数中使用这些参数,则必须将其列出。

    2. 函数的 调用

    //1. 你把方法写好,那么方法编译会常驻在内存中;
    //2. 还可能将系统已经存在的方法覆盖掉。
    //3. 在JS中没有重载,如果方法名一样,后面的会覆盖前面的方法。
    //4. 参数不是必须的,定义方法时,可以设置参数,也可以不设置,如果设置了参数,在调用时也可以不传递相应的值。如果没有设置,调用时也可以传递值。
    //5. 如果是在调用的时候加了(),那么就相当于是执行了这个方法,如果只是方法名,那么就相当于绑定了方法的引用。如果需要方法起作用,还必须做触发
    function funName(){ //声明一个方法(首字母小写),和 window.onload 同一级别
        var name=”张三”;
        alert(name);
        return function(){ alert(“方法返回值”);};//如果不写return返回的是undefined
    }
    //单独定义的方法,不要写在另外一个方法内部,不然在dom里面调用不到
    function funName(name,age,address){ //调用时,按顺序传递对应的值
        //var name=”张三”;
        alert(name+”:”+age); //如果未传递值,则显示对应变量为undefined
    }
    funName();//直接调用方法(不管你写在哪里,只要可以运行这句代码,就会调用方法)
    ***************************************************************************
    //下面两行代码都会在页面加载时先执行函数,然后把方法返回值给onclick事件。因为此时页面所有内容(包括文字、图片、视频、js脚本等)还未加载完毕,找不到对象,所以必须写在window.onload=function(){   ...   }里面。
    //动态绑定方法 --- 匿名方法
    document.getElementById(“btn”).onclick = function(){ }//声明匿名函数
    document.getElementById(“btn”).onclick = funName(); //运行funName函数 
    
    ***************************************************************************
    <input type=”button” value=”调用方法” id=”btn1” onclick=”funName” />  ( X )
    <input type=”button” value=”调用方法” id=”btn2” onclick=”funName()” />
    <input type=”button” value=”调用方法” id=”btn3” onclick=”funName('aa')” />

    3. JS常见全局函数

    decodeURI() 解码某个编码的 URI

    encodeURI() 把字符串编码为 URI

    decodeURIComponent() 解码一个编码的 URI 组件

    encodeURIComponent() 把字符串编码为 URI 组件

    escape() 对字符串进行编码 (ECMAScript 3不推荐使用,用上面的函数代替)

    unescape() 对由 escape() 编码的字符串进行解码,当一个数值 除以 0 的时候,返回一个 无穷大值(infinite)

    isFinite() 检查某个值是否为[有穷大]的数。

    isNaN() 检查某个值是否是数字(is not a number)。

    parseFloat() 解析一个字符串并返回一个浮点数

    parseInt() 解析一个字符串并返回一个整数

    <script type="text/javascript">
    //如果需要使用body里面创建的元素,那么就需要写在window.onload中
    //在asp里面,有时,我们需要从一页面传递参数到另外一页面。如果传递的是中文,接收的就有可能是乱码
        var str = "传智播客";
        var res = window.escape(str);
        alert(res);
        alert(unescape(res));
        alert(isFinite(1 / 0));   //false    
    </script>
  • 相关阅读:
    LeetCode12: 整数转罗马数字
    LeetCode11:盛最多水的容器
    LeetCode09:判断回文数
    LeetCode08:字符串转换成整数
    LeetCode04:寻找中位数
    LeetCode03:无重复字符的最长子串
    《JAVA编程思想》第四版 PDF 下载 中文版和英文版 高清PDF扫描带书签
    XML
    异常
    委托和匿名方法和Lambda表达式
  • 原文地址:https://www.cnblogs.com/SunXiaoLin/p/5283901.html
Copyright © 2011-2022 走看看