zoukankan      html  css  js  c++  java
  • JS中函数

    函数名仅仅是指向函数的指针,function sum(){...} var anotherSum = sum; 注意,使用不带圆括号的函数名是访问函数指针,而非调用函数。如果要用anotherSum来调用函数的话,还是要加圆括号。js中函数没有重载的概念

    1.函数声明   function functionName(arg0, arg1, arg2) {

                          //函数体}

    2.函数表达式来定义函数

    var functionName = function(arg0, arg1, arg2) {

             //函数体

         };     匿名函数赋值给一个变量

    (function(){

        //函数体

    })();       立即执行函数表达式  ,匿名函数

    return function(){

    //函数体

    };             匿名函数

    var add = function foo(a, b){

    //函数体

    };              命名式函数表达式,不常见。

    3.函数构造器,不常用

     解析器对函数声明和函数表达式并非一视同仁,解析器会率先读取函数声明,并使其在执行任何代码之前可用(可以访问),至于函数表达式,则必须等到解析器执行到他所在的代码行,才会真正被解释执行。

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <script>
    //    alert(outer());
    //    function outer()
    //    {
    //        var localVal = 30;
    //        return localVal;
    //    }
        alert(foo());//要用foo来调用函数的时候必须得加上()
        var foo = function () {
            var localVal = 30;
            return localVal;//控制台报错Uncaught TypeError: foo is not a function 
        }
    </script>
    </body>
    </html>

    函数的声明和变量的声明会被提前。上面那个例子中var foo这个声明在alert的前面,这时foo还是一个undefined

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    高级程序设计里面内容:

    var someFunction = function(){
    //这里是块级作用域
    };
    someFunction();
    这个例子先定义了一个函数,然后立即调用了它。定义函数的方式是创建一个匿名函数,并把匿名
    函数赋值给变量someFunction。而调用函数的方式是在函数名称后面添加一对圆括号,即
    someFunction()。通过前面的例子我们知道,可以使用实际的值来取代变量count,那在这里是不是
    也可以用函数的值直接取代函数名呢? 然而,下面的代码却会导致错误。
    function(){
    //这里是块级作用域
    }(); //出错!
    这段代码会导致语法错误,是因为JavaScript 将function 关键字当作一个函数声明的开始,而函
    数声明后面不能跟圆括号。然而,函数表达式的后面可以跟圆括号。要将函数声明转换成函数表达式,
    只要像下面这样给它加上一对圆括号即可。

    (function(){
    //这里是块级作用域
    })();

  • 相关阅读:
    系统进程
    Javascript中的常用事件
    进程信息库网址
    C#中使用临时存储过程
    Transactsql 中的 rollup 和cube的使用
    如何使用fckeditor在线编辑器(asp)
    微软将 jQuery IntelliSense整合到Visual Studio
    no such file to load openssl Anny
    Ubuntu 防火墙 ufw Anny
    Install Apache 2 from Source on Linux(转) Anny
  • 原文地址:https://www.cnblogs.com/zhuni/p/4704485.html
Copyright © 2011-2022 走看看