標籤: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函數定義方式及範圍