函数的定义:
第一种:关键字function,语法如下,
function 函数名(参数列表) {函数内容主题};例子,function add(x,y){return x+y};
第二种:利用new运算符和Function()构造函数动态定义函数;例子,var f=new Function("x","y","return x+y");
Function()函数接受任意个字符参数,最后一个参数是要定义的函数的主题,上面例子相当于,function f(x,y){return x+y}
第三种:函数的直接量,直接量是一个表达式,定义函数例子:var f=function add(x,y){return x+y} 其中function(x,y){return x+y}就是直接量,,,,这种方式并没有真正创建一个add函数,只是创建一个没有名字的函数,并把对它的引用保存在变量f中。
区别:
第一种方式在声明时就是一个命名的函数,无论是声明在调用之前、调用之后,甚至是不会执行到的位置(例如return语句之后或是永远不会为真的分支里),都在整个作用域可访问;第三种方式是通过把匿名函数赋值给变量的方式,严格意义上说这不是一个函数的声明(function declaration)而是一个函数表达式(function expression),在赋值之前这个函数不能被任何代码访问到,也就是说这个赋值必须在调用之前完成,否则调用时会出现错误:"TypeError: undefined is not a function"。
函数名:函数名只是相当于一个变量,代表一块函数,function add(x,y){return x+y},其中add只是代表“add(x,y){return x+y}”这个整体,可以像普通变量那样传递给其他变量,var a=add; var b=a(2,3);结果b=5;
函数调用和JS文件引用:
1、在一个JS文件中,先定义的函数A可以调用后定义的函数B;
2、asp.net中.cs文件中调用JS文件中的函数方法:this.Page.ClientScript.RegisterStartupScript(typeof(Int16), "creatediv", "ctrlwidth()", true);要在.cs文件中调用函数,首先在对应的.aspx文件中引用JS文件,引用方法位置为,
<html>。。。<script src="js文件路径" type="text/javascript"></script>。。。<html>
对于函数的解释如下,
{
函数public void RegisterStartupScript(Type type, string key,string script,booladdScriptTags);
第一个参数 type:
可以利用typeof(类型),对象.GetType()来得到,可以是任何类型!例如:typeof(string),typeof(Int16)等
第二个参数 key:
就是区分不同脚本的标识。
如果上下文中有注册了相同键的脚本,那么,迟注册的脚本将不会被输出。
该键一般是一个随机数或者流水号什么的。最好是有个有意义的字符串。相当于VC++中的in 类型的参数,自己输入的一个标记。
第三个参数 script:
这个可以是JS中的函数名,但是有参数函数的还不能解决,不知道函数名是不是代表一块Javascript?
第四个参数 addScriptTags:
addScriptTags 参数可指示 script 参数中提供的脚本是否包装在 <script> 元素块中。将 addScriptTags 设置为 true 指示脚本标记将自动添加。
}
另外RegisterStartupScript这个函数的第4个参数true有时不起作用,保险的做法应该用false并加上<script>...</script>
如:
...(typeof(Int16), "aaaaa", "<script>alert('Test')</script>", false);
3、在母版页中引用过Js文件后,母版页的子页也默认引用了此JS文件。
JavaScript中得到html中的控件:
document的GetelementById方法和GetElementByName方法。
Javascript中页面刷新函数:
window.history.go(0);