zoukankan      html  css  js  c++  java
  • JavaScript 函数

    一、JavaScript 函数 是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

    函数就是包裹在花括号中的代码块,前面使用了关键词 function:

     
    function functionname()
    {
    执行代码
    }

    当调用该函数时,会执行函数内的代码。

    可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。

    (注意:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。)

    二、局部JavaScript变量和全局JavaScript变量

      在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。只要函数运行完毕,本地变量就会被删除。

      而在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。

    三、JavaScript 变量的生存期

    JavaScript 变量的生命期从它们被声明的时间开始。

    局部变量会在函数运行以后被删除。

    全局变量会在页面关闭后被删除。

    四、向未声明的 JavaScript 变量分配值

    如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。

    这条语句:carname="Volvo";  将声明一个全局变量 carname,即使它在函数内执行。

    【test】

    1.对一个数字(n)执行阶乘操作,将得到1~n 的数字乘积,通常写做3!(1X2X3或者6)。编写一个JavaScript函数,使用递归的方法计算出指定数字的阶乘。

    解:可能的解决方案之一:

     function findFactorial(n){
           if(n==0){
               return 1;
           }
           return  (n*findFactorial(n-1));
       }
        var num=findFactorial(4);  //将返回 24
        alert(num);

    2.函数如何才能修改其作用域之外的变量?编写一个函数,由1~5的数字组成的数组作为参数,调用该函数后将把其中的数字项替换成相应的字符串表示形式(也就是“one”,“two”等)

    解:如果将一个对象(如一个数组)作为函数的参数传入,那么在函数中对这个数组的修改就会反映到函数外部。针对这个问题,其中一种解决方案是:

    function makeArray(){
          var arr =[1,5,3];
           alert(arr);
           alertArray(arr);
           alert(arr);
       }
    
        function alertArray(arrOfNumbers){
            for(var i=0;i<arrOfNumbers.length;i++){
                switch (arrOfNumbers[i]){
                    case 1 :arrOfNumbers[i] = "one";
                        break;
                    case 2:arrOfNumbers[i] = "two";
                        break;
                    case 3 :arrOfNumbers[i] = "three";
                        break;http://i.cnblogs.com/EditPosts.aspx?opt=1
                    case 4:arrOfNumbers[i] = "four";
                        break;
                    case 5:arrOfNumbers[i] = "five";
                        break;
                }
            }
        }

    3.创建一个函数,它的参数是一个数据对象和一个函数,它将对这个数据对象调用该函数。http://i.cnblogs.com/EditPosts.aspx?opt=1

    解:用一个匿名函数就能够满足需求:

      function invokeFunction(dataObject,functionToCall){
           functionToCall(dataObject);
       }
        var funcCall = new Function('x','alert(x)');
        invokeFunction('hello',funcCall);
  • 相关阅读:
    173. Binary Search Tree Iterator
    199. Binary Tree Right Side View
    230. Kth Smallest Element in a BST
    236. Lowest Common Ancestor of a Binary Tree
    337. House Robber III
    449. Serialize and Deserialize BST
    508. Most Frequent Subtree Sum
    513. Find Bottom Left Tree Value
    129. Sum Root to Leaf Numbers
    652. Find Duplicate Subtrees
  • 原文地址:https://www.cnblogs.com/shenxiaolin/p/5515474.html
Copyright © 2011-2022 走看看