函數function類似于java語言中的方法Method,也是一段可以完成特定功能的代碼片段,并且這段代碼片段是可以重復利用的。在javascript中定義函數的語法:
定義函數:
第一種方式:
function 函數名(形式參數列表){ //形參是局部變量
函數體由js語句構成;
}
調用函數:
函數名(實參);
第二種方式:
函數名 = function(形式參數列表){
函數體由js語句構成;
}
JS語法是弱類型的,所以不需要指定函數的返回值類型。但是JS的函數仍然有返回值。是否返回值取決于程序員的代碼決定。包括函數的形參類型也不需要指定。
JS中沒有函數重載的概念,在同一個script標簽中,函數名不能重名。
示例:
<html>
<head>
<title>function_01</title>
<script language="javascript">
function sayHello(ename){ //定義函數
window.document.write("<h1>Hello "+ename+"</h1>");
}
sayHello("JACK"); //調用函數
function getUser(id,name){//定義函數
return id + "-->" + name;
}
document.write("<center>"+getUser(77,"JACK")+"</center>");
alert(getUser(45)); //參數個數不匹配也可以調用,參數多或少都可以
</script>
</head>
</html>
示例:
<html>
<head>
<title>JS中函數初步</title>
<script language="javascript">
function sayHello(username){
//alert(username + ",你好!");
//document是JS中的DOM的頂層對象
//document內置對象中有一個write方法,可以向瀏覽器輸出HTML代碼。
//document.write(username + ",你好!");
document.write("<center><font color='blue' size='7'>" + username + ",你好!</font></center>");
}
//函數還可以這樣定義
/*
sayHello = function(username){
alert(username + ",你好!");
}
*/
//調用函數
//sayHello("李四");
</script>
</head>
<body>
<form name="form1">
<input type="text" name="username"/>
<!--
要獲取form表單中的一個標簽的value? form的名字.標簽的名字.value
-->
<inputtype="button"value="sayHello"onclick="sayHello(form1.username.value);"/>
</form>
</body>
</html>
示例:
<html>
<head>
<title>JS中函數初步</title>
<script language="javascript">
//JS中的函數也可以有返回值,也可以沒有。
//JS函數最后可以編寫return語句,也可以不寫。
function validateName(username){
//字符串length屬性用來獲取字符串的長度。
if(username.length<6){
return false;
}
return true;
}
//alert(validateName("jack123123")?"合法":"不合法");
/*
var flag = validateName("jack");
if(flag){
alert("合法");
}else{
alert("不合法");
}
*/
</script>
</head>
<body>
<!--
失去焦點事件:blur
失去焦點事件句柄:onblur
以下程序中的this表示當前對象,當前對象是input框。
this.value是input框的值。
-->
<input
type="text"
name="username"
onblur="alert(validateName(this.value)?'合法':'不合法');" />
</body>
</html>
示例:
<html>
<head>
<title>JS中函數初步</title>
<script language="javascript">
/*
js中函數聲明的時候,不僅是一個函數的聲明,還是一種類型的定義。
JS中類的定義和構造方法于一體。
*/
//這里的Dept不但是一個函數名,還是一個類名。
Dept = function(deptno,dname,loc){
alert("能執行嗎?");
//this表示當前對象。
//屬性
this.deptno = deptno;
this.dname = dname;
this.loc = loc;
//動作
this.print = function(){
document.write("部門編號:" + this.deptno + ",部門名:" + this.dname + ",部門地理位置:" + this.loc);
}
alert("end-->能執行嗎?");
}
//創建對象
var d1 = new Dept(10,"SALES","NEW YORK");
d1.print();// 調用對象的方法
alert(d1.deptno);//調用對象的屬性
alert(d1.dname);
alert(d1.loc);
//這里不會創建對象,這只是普通方法調用。
Dept(20,"MYSALES","BEIJING");
</script>
</head>
<body>
</body>
</html>