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>
时间: 2024-08-06 08:30:09

javascript函数定义方式及作用域的相关文章

JavaScript 函数定义方法

JavaScript 函数定义方法. 函数声明 在之前的教程中,你已经了解了函数声明的语法 : function functionName(parameters) { 执行的代码 } 函数声明后不会立即执行,会在我们需要的时候调用到. function myFunction(a, b) { return a * b; } 分号是用来分隔可执行JavaScript语句. 由于函数声明不是一个可执行语句,所以不以分号结束. 函数表达式 JavaScript 函数可以通过一个表达式定义. 函数表达式可

JavaScript——函数定义和调用

1.定义函数 定义方式一 绝对值函数 function abs(x){ if(x>=0){ return x; }else{ return -x; } } 上述abs()函数的定义如下: function指出这是一个函数定义: abs是函数的名称: (x)括号内列出函数的参数,多个参数以,分隔: { ... }之间的代码是函数体,可以包含若干语句,甚至可以没有任何语句. 注意: 函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回.因此,函数内部通过条件判断和循环可以

JavaScript函数定义和调用 变量作用域

本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 JavaScript中函数定义可以是这样的格式 function 函数名(参数) { 函数体 } 也可以是这样的格式 var 函数名 = function (参数) { 函数体 }; 关键字一:arguments 获取全部参数 只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数.arguments类似Array但它不是一个Array.第一个参数是arguments[0]....[n] 关键字二:rest 获取 获取除了已定

javascript函数定义以及常见用法

              我们知道,js函数有多种写法,函数声明 ,函数表达式,Function式构造函数,自执行函数,包括Es6的箭头函数,Class类写法,高阶函数,函数节流/函数防抖,下面我就开始讲关于上面几种类型的最基本用法. 函数声明式写法 这种写法是最基本的写法 ,使用关键字 function 定义函数,函数声明后不会立即执行,会在我们需要的时候调用到.这种函数是全局的,如果有两个同名的声明式函数存在,那么第二个会覆盖第一个. function Test(){ } 有个面试题如下,

五种函数定义方式----第五种是重点

//函数4要素:返回类型,函数名,参数列表,函数体//1.最简单的定义方式/*function show(){echo "hello"; }*///2.有函数的定义方式/*function show($a){echo a;}*///3.有默认值的函数定义/*function show($a="ccc"){ echo $a;}*///4.有返回值的函数定义/*function show($a,$b){  return $a+$b; }*///5.可变参数的函数定义  

[转]javascript函数定义表达式和函数声明的区别

在javascript中,函数有两种定义写法,函数定义表达式和函数声明,其例子分别如下所示: var test = function(x){ return x; } function test(x){ return x; } 尽管函数定义表达式和函数声明语句包含相同的函数名,并且都创建了新的函数对象,但是这二者却有区别. 函数声明语句中的函数名是一个变量名,变量指向函数对象. 函数定义表达式和通过var声明变量一样,其函数被提前到了脚本或函数的顶部,因此它在整个脚本和或函数内都是可见的.这样的话

JavaScript 函数定义和调用

普通的函数定义方法: function abs(x):{ if (x >= 0){ return x; }else { return -x ; } } 两种方法是等价的 var abs = function (x):{ if (x >= 0){ return x; }else { return -x ; }; arguments JavaScript还有一个免费赠送的关键字arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数.arguments类似Array但它

javascript函数定义表达式

函数定义表达式定义一个JavaScript函数.表达式的值是这个新定义的函数.从某种意义上讲,函数定义表达式可称为"函数直接量",毕竟对象初始化表达式也称为"对象直接量".一个典型的函数定义表达式包含关键字function,跟随其后的是一对圆括号,括号内是一个以逗号分割的列表,列表含有0个或多个标识符(参数名),然后再跟随一个由花括号包裹的JavaScript代码段(函数体),例如: //这个函数返回传入参数值的平方 var square = function(x)

C++:类的成员函数定义方式

1.成员函数的第一种定义方式:在类声明中只给出成员函数的原型,而将成员函数的定义 放在类的外部. 返回值类型 类名::成员函数名(参数表) {      函数体  } class Point{ public: void setpoint(int,int); //设置坐标点的成员函数setpoint的函数原型 int getx(); //取x坐标点的成员函数getx的函数原型 int gety(); //取y坐标点的成员函数gety的函数原型 private: int x,y; }; void P