码迷,mamicode.com
首页 > 编程语言 > 详细

javascript函数定义方式及作用域

时间:2016-12-03 02:34:36      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:javascript函数定义方式及作用域

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP ‘test3.jsp‘ starting page</title>
    
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <script src="js/jquery-2.1.1.min.js"></script>
    <script>
//        function test(a,b){
//            return a+b;
//        }
//        //alert(typeof test);        //函数也是一种数据类型 function类型
//        function test2(aa){
//            aa();
//        }
//        function test3(){
//            alert(‘test3‘);
//        }
//        //test2(test3);                 //函数可以当做数据传入,还可以传入匿名函数
//        test2(function(){
//            alert(‘匿名函数‘);
//        });
//        //在js函数中是可以嵌套的,避免这样使用
//        function test4(){
//            function test5(){
//                alert(‘test5‘);
//            }
//            test5();               //test5的作用域是在test4内部,外部不能直接访问,在test4中调用
//        }
//        //test4();



        //js函数三种定义方式
        //1.function语句式
        function test(){
            
        }
        //2.函数的直接量
        var te=function test2(){
            
        }
        
        //3.function构造函数式
        var test3=new Function(‘a‘,‘b‘,‘return a+b‘);
        //alert(test3(1,2));
        
        //解析顺序问题,对于function语句式的函数,javascript会优先解释
    //    test4();
        function test4(){
            alert(‘test4‘);
        }
        //alert(test());                     //undefined  
        //test();                             //无作用,执行test()函数时,还没有执行到test5()函数处(只是有申明而已),所以未定义,表示申明了但是未赋值
        var test=function test5(){
            //alert(‘test5‘);
        }
        
        var t1=1;
        function t2(){
            var t1=2;
            //function test(){return t1;}            //2
            //var test=function(){return t1;}       //2
            var test=new Function(‘return t1‘);   //构造函数方式式,具有顶级作用域,和卸载外面一样,会输出1
            alert(test());
        }
        t2();
    </script>
  </head>
  
  <body>
    This is my JSP page. <br>
  </body>
</html>


本文出自 “matengbing” 博客,请务必保留此出处http://matengbing.blog.51cto.com/11395502/1878994

javascript函数定义方式及作用域

标签:javascript函数定义方式及作用域

原文地址:http://matengbing.blog.51cto.com/11395502/1878994

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!