zoukankan      html  css  js  c++  java
  • javaScript定义函数的三种方式&变量的作用域

    一.函数定义

    方式1.普通方式定义函数

    function 函数名(參数n){

    函数体

    }

    function add(a,b){
    		return a+b;
    	}
    
    方式2.直接量定义函数

    var 函数名=function(參数n){

    函数体

    }

    var add=function(a,b){
    		return a+b;
    	}
    方式三.构造方式定义函数

    var 函数名=new Function(參数n,函数体);

    var add = new Function('a,b','return a+b;');
    二.变量的作用域:

    全局变量:全局域和函数域

    局部变量:局部函数域内

    <script type="text/javascript">
    	var a="a";
    	function fn(){
    		var b="b";
    		alert(a);
    		alert(b);
    	}
    	fn();
    	alert(a);
    	alelrt(b);
    </script>
    打印结果:a,b,a我们发现最后一个alert(b)没有打印这是由于b定义在函数体内仅仅能在函数体内使用
    特殊的作用域

    <script type="text/javascript">
    	var a="a";
    	function fn(){
    		alert(a);
    		var a="b";
    		alert(a);
    	}
    	alert(a);
    </script>
    执行结果:

    undefined,b,a

    代码解释:


    * 解读一下代码:
    *  * 定义一个全局变量a,并初始化为"a".
    *  * 定义一个函数fn(),可是没有调用(说明函数内容的代码不运行).
    *    * 定义局部变量a,但不初始化.
    *  * 到以上代码为止,当前环境中具有几个变量?


    *    * 全局变量a,值为"a".
    *    * 局部变量a,但没值.
    *  * 当调用函数fn()时:
    *    * 打印变量a:就近原则
    *      * 局部变量a,没值:结果为undefined.
    *    * 打印变量a,局部变量a.
    *  * 在全局域中打印变量a:全局变量a.

    * 结论:
    *  * javascript一次性定义代码段中全部的变量,但不初始化.
    *  * javascript中当运行到相应语句时,初始化变量.
    *  
    *  * 当全局变量与局部变量同名时:
    *    * 在函数域中,仅仅能訪问到局部变量a.


  • 相关阅读:
    多层交换概述
    多层交换MLS笔记2
    多层交换MLS笔记1
    RSTP Proposal-Agreement
    RSTP Note
    保护STP
    优化STP
    Cisco STP Note
    25、C++的顶层const和底层const
    43、如何用代码判断大小端存储
  • 原文地址:https://www.cnblogs.com/lxjshuju/p/7137883.html
Copyright © 2011-2022 走看看