1:调用关键字function来构造
function distance(x1,x2,y1,y2)
{
var dx=x2-x1
var dy=y2-y1
return Math.sqrt(dx*dx+dy*dy)
}
2:使用Function()构造函数(请注意与上面的大小写)
1
var f=new Function*"x","y","return x*y")
这行代码创建了一个新函数,该函数和你所熟悉的语法定义的函数基本上时等价的:
1
2
3
4
function f(x,y)
{
return x*y
}
Functino()构造函数可以接受任意多个字符串参数。它的最后一个参数时函数的主体,其中可以包含任何JavaScript语句,语句之间用分号分隔。其他的参数都是用来说明函数要定义的形式参数名的字符串。如果你定义的函数没有参数,那么可以只需给构造函数传递一个字符串(即函数的主体)即可。
注意,传递给构造函数Function()的参数中没有一个用于说明它要创建的函数名。用Function()构造函数创建的未命名函数有时被成为“匿名函数”。
你可能非常想知道Function()构造函数的用途是什么。为什么不能只用function语句来定义所有的函数呢?原因是Function()构造函数允许我们动态地建立和编译一个函数,它不会将我们限制在function语句预编译的函数体中。这样做带来的负面影响效应就是每次调用一个函数时,Function()构造函数都要对它进行编译。因此,在循环体中或者在经常使用的函数中,我们不应该频繁地调用这个构造函数。
使用Function()构造函数的另一个原因是它能够将函数定义为JavaScript表达式的一部分,而不是将其定义一个语句,这种情况下使用它就显得比较的方面,甚至可以说精致。
3:函数直接量
函数直接量是一个表达式,它可以定义匿名函数。函数直接量的语法和function语句非常相似,只不过它被用作表达式,而不是用作语句,而且也无需指定函数名。下面的三行代码分别使用function()语句、Funciont()构造函数和函数直接量定义了三个基本上相同的函数:
1
2
3
function f(x){return x*x}
var f=new Function("x","return x*x")
var f=function(x){reurn x*x}
在JavaScript1.1中,可以使用构造函数Function()来定义函数,在JavaScript1.2和其后的版本中,还可以使用函数直接量来构造函数。你应该注意这两种方法之间的重要差别。
首先,构造函数Function()允许在运行时动态地创建和编译JavaScript代码。但是函数直接量却是函数结构的一个静态部分,就像function语句一样。
其次,作为第一个差别的必然结果,每次调用构造函数Function()时都会解析函数体并且创建一个新东汉数对象。如果对构造函数的调用出现在一个循环中,或者出现在一个经常被调用的函数中,这种方法的效率非常低。另一个方面,函数直接量或出现在循环和函数中的嵌套函数不是在每次调用时都被重新编译,而且每当遇到一个函数直接量时也不创建一个新的函数对象。
Function()构造函数和函数之间量之间的第三点差别是,使用构造函数Function()创建的函数不使用词法作用域,相反的,它们总是被当作顶级函数来编译,就像下面代码所说明的那样:
下面介绍全页面刷新方法:有时候可能会用到
window.location.reload()刷新当前页面.
parent.location.reload()刷新父亲对象(用于框架)
opener.location.reload()刷新父窗口对象(用于单开窗口)
top.location.reload()刷新最顶端对象(用于多开窗口)
下面再介绍一些javascript基本函数
1.document.write(”")为 输出语句
2.js中的注释为//
3.传统的html文档顺序是:document->html->(head,body)
4.一个浏览器窗口中的dom顺序是:window->(navigator,screen,history,location,document)
5.得到表单中元素的名称和值:document.getelementbyid(”表单中元素的id号”).name(或value)
6.一个小写转大写的js: document.getelementbyid(”output”).value = document.getelementbyid (”input”).value.touppercase()
7.js中的值类型:string,number,boolean,null,object,function
8.js中的字符型转换成数值型:parseint(),parsefloat()
9.js中的数字转换成字符型:(”"+变量)
10.js中的取字符串长度是:(length)
11.js中的字符与字符相连接使用+号.
12.js中的比较操作符有:==等于,!=不等于,>,>=,<.<=
13.js中声明变量使用:var来进行声明
14.js中的判断语句结构:if(condition){}else{}
15.js中的循环结构:for([initial expression][condition][upadte expression]) {inside loop}
16.循环中止的命令是:break
17.js中的函数定义:function functionname([parameter],…){statement[s]}
18.当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.
19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self
20.状态栏的设置:window.status=”字符”
21.弹出提示信息:window.alert(”字符”)
22.弹出确认框:window.confirm()
23.弹出输入提示框:window.prompt()
24.指定当前显示链接的位置:window.location.href=”url”
25.取出窗体中的所有表单的数量:document.forms.length
26.关闭文档的输出流:document.close()
27.字符串追加连接符:+=
28.创建一个文档元素:document.createelement(),document.createtextnode()
29.得到元素的方法:document.getelementbyid()
49.引用一个文件式的js:
50.指定在不支持脚本的浏览器显示的html:
51.当超链和onclick事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例: dfsadf
52.js 的内建对象 有:array,boolean,date,error,evalerror,function,math,number,object,rangeerror,referenceerror,regexp,string,syntaxerror,typeerror,urierror
53.js中的换行:/n
54.窗口全屏大小:function fullscreen(){ this.moveto(0,0)this.outerwidth=screen.availwidththis.outerheight=screen.availheight}window.maximize=fullscreen
55.js中的all代表其下层的全部元素
56.js中的焦点顺序:document.getelementbyid(”表单元素”).tabindex = 1
57.innerhtml的值是表单元素的值:如how are you,则innerhtml的值就是:how are you
58.innertext的值和上面的一样,只不过不会把em这种标记显示出来.
59.contenteditable可设置元素是否可被修改,iscontenteditable返回是否可修改的状态.
60.isdisabled判断是否为禁止状态.disabled设置禁止状态
61.length取得长度,返回整型数值
62.addbehavior()是一种js调用的外部函数文件其扩展名为.htc
63.window.focus()使当前的窗口在所有窗口之前.
64.blur()指失去焦点.与focus()相反.
65.select()指元素为选中状态.
66.防止用户对文本框中输入文本:onfocus=”this.blur()”
67.取出该元素在页面中出现的数量:document.all.tags(”div(或其它html标记符)”).length
68.js中分为两种窗体输出:模态和非模态.window.showmodaldialog(),window.showmodeless()
69.状态栏文字的设置:window.status=‘文字’,默认的状态栏文字设置:window.defaultstatus = ‘文字.’
70.添加到收藏夹:external.addfavorite(”http://www.google.com”,”google”)
71.js中遇到脚本错误时不做任何操作:window.onerror = donothing指定错误句柄的语法为:window.onerror = handleerror
72.js中指定当前打开窗口的父窗口:window.opener,支持opener.opener…的多重继续.
73.js中的self指的是当前的窗口
74.js中状态栏显示内容:window.status=”内容”
75.js中的top指的是框架集中最顶层的框架
76.js中关闭当前的窗口:window.close()
77.js中提出是否确认的框:if(confirm(”are you sure?”)){alert(”ok”)}else{alert(”not ok”)}
78.js中的窗口重定向:window.navigate(”http://www.google.com”)
79.js中的打印:window.print()
80.js中的提示输入框:window.prompt(”message”,”defaultreply”)
81.js中的窗口滚动条:window.scroll(x,y)
82.js中的窗口滚动到位置:window.scrollby
83.js中设置时间间隔:setinterval(”expr”,msecdelay)或setinterval(funcref,msecdelay)或settimeout
84.js中的模态显示在ie4+行,在nn中不行:showmodaldialog(”url”[,arguments][,features])
85.js中的退出之前使用的句柄:function verifyclose(){event.returnvalue=”we really like you and hope you will stay longer.”}} window.onbeforeunload=verifyclose
86.当窗体第一次调用时使用的文件句柄:onload()
87.当窗体关闭时调用的文件句柄:onunload()
88.window.location的属性: protocol(http:),hostname(www.example.com),port(80),host(www.example.com:80),pathname(”/a/a.html”),hash(”#giantgizmo”,指跳转到相应的锚记),href(全部的信息)
89.window.location.reload()刷新当前页面.
89-1.parent.location.reload()刷新父亲对象(用于框架)
89-2.opener.location.reload()刷新父窗口对象(用于单开窗口)
89-3.top.location.reload()刷新最顶端对象(用于多开窗口)
90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的url)
91.document.write()不换行的输出,document.writeln()换行输出
92.document.body.nowrap=true防止链接文字折行.
93.变量名.charat(第几位),取该变量的第几位的字符.
94.”abc”.charcodeat(第几个),返回第几个字符的ascii码值.
95.字符串连接:string.concat(string2),或用+=进行连接
96.变量.indexof(”字符”,起始位置),返回第一个出现的位置(从0开始计算)
97.string.lastindexof(searchstring[,startindex])最后一次出现的位置.
98.string.match(regexpression),判断字符是否匹配.
99.string.replace(regexpression,replacestring)替换现有字符串.
100.string.split(分隔符)返回一个数组存储值.
101.string.substr(start[,length])取从第几位到指定长度的字符串.
102.string.tolowercase()使字符串全部变为小写.
103.string.touppercase()使全部字符变为大写.
104.parseint(string[,radix(代表进制)])强制转换成整型.
105.parsefloat(string[,radix])强制转换成浮点型.
106.isnan(变量):测试是否为数值型.
107.定义常量的关键字:const,定义变量的关键字:var