• JavaScript之函数


        1.函数的概念和创建

        1.1  函数

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

    增强了代码的灵活性,可扩展性,可维护性,减少代码的冗余。

     1.2  函数的创建方式

    函数的创建方式有三种

         1.2.1 函数声明

    function functionName() {

                statement

    }

        1.2.2  函数表达式

    var  functionName = function () {

           statement

    |

       1.2.3  构造函数

    var  functionName  =  new Function();

        2. 函数的执行

       2.1 事件驱动

       2.2 调用函数           函数名 ()

    <input type="button" name="btn" id="btn" value="测试" />
    		<script type="text/javascript">
    			function foo(){
    				document.write("hello world");
    			}
    			
    			//btn.onclick = foo;//函数名也成为指针   事件驱动    
    			
    
    			//函数调用  函数名()
    			//foo();
    
    
    		</script>

        3. 参数           (分为形参和实参)

    定义函数时,在小括号里写的变量——形参

    调用函数时,在小括号里写的变量或者值 ——实参

    形参和实参的个数应保持一致,如果形参个数多于实参,多于的形参会取undefined;如果实参个数比形参多,多余的实参无用。

       4. JavaScript预编译分析

    脚本执行js分为两个阶段:预编译和代码的执行。

    JS并不会完全按照代码顺序进行解析执行,而是在解析之前进行一次“预编译”。在此过程中,会把:

    • (1)定义式的函数优先执行
    • (2)所有var变量定义,默认值为undefined

    编译阶段会对所有的var变量和function进行扫描,并将var变量初始化为undefined类型,而function则被初始化为函数值。到了执行阶段,JS从上面往下面依顺序执行,遇到var变量便进行赋值(因此,在赋值之前进行调用的话会出现错误).遇到函数变量的话会从活动对象中寻找函数。

    变量声明 :var

    函数声明 :function

    注意:预编译阶段发生变量声明和函数声明,没有初始化行为(赋值),匿名函数不参与预编译只有在解释执行阶段才会进行变量初始化。

    5. arguments 和return 关键字

    arguments  :用在函数内部,表示传给该函数的所有实参的集合。

    function foo(){
    	var sum = 0;
    	console.log(arguments);//伪数组或者类数组对象
    	//arguments[0]取到第一个实参值,arguments[arguments.length-1]取到最后一个实参值
    	//console.log(arguments[0],arguments[1])
    	//var sum = arguments[0]+arguments[1]+arguments[2]+arguments[3];
    				
    	for(var i = 0; i < arguments.length; i++){
    			sum += arguments[i]
    		}
    			document.write(sum);
    		}
    			
    		foo(1,2,3,4,5,55);
    			
    			
    		/*function bar(){
    			//表示的函数自身   在代码压缩时
    			//console.log(arguments.callee);
    		}
    			
    		bar();*/

    return  :(1)返回函数运行结果  (2) 终止函数执行

    如果一个函数没有return或者return后面没有跟具体的值,默认返回undefined。

    //这个函数的功能是在页面中打印aaa
    			//这个函数运行的结果为bbb
    			function foo(){
    				document.write("aaa");
    				return "bbb"; 
    			}


     

  • 相关阅读:
    关于匹配的一些问题
    Codeforces Round #396 (Div. 2) A,B,C,D,E
    Codeforces Round #394 (Div. 2) A,B,C,D,E
    HDU 1848 SG函数博弈
    HDU 1536 S-Nim SG博弈
    HDU 2509 Be the Winner nim博弈变形
    HDU 1907 John nim博弈变形
    Codeforces Round #222 (Div. 1) D. Developing Game 线段树有效区间合并
    BZOJ 1031: [JSOI2007]字符加密Cipher 后缀数组
    HDU 5769 Substring 后缀数组
  • 原文地址:https://www.cnblogs.com/a-peppa-pig/p/9379221.html
Copyright © 2020-2023  润新知