一. 儲備知識
JS函數的注意點:
- 通過關鍵字function聲明函數
- js匿名函數建立時,需要使用變量接收函數的引用(js函數的本質也是一個對象),接收函數的變量相當于函數的方法名
- js函數在調用時,js引擎不會檢查傳入參數的個數,自動從前向後比對使用
- 如果傳入的參數不夠,進行加法運算時會報出NAN(not a number)
- ‘+’如果有字元串,會自動拼接
- ‘+ true’,true将當作1,false當作0使用
- 函數裡面的this,誰調用函數,這個this就代表誰
1.1 聲明匿名無參無傳回值函數
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//1.聲明函數
//接收函數的變量相當于函數的方法名
var fun = function(){
alert("這是一個匿名無參無傳回值的函數");
};
//2.函數調用:函數名(實參清單)
//調用匿名函數
fun();
</script>
</head>
<body>
</body>
</html>
1.2 聲明匿名有參有傳回值函數
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//1.聲明匿名有參有傳回值的函數
//接收函數的變量相當于函數的方法名
var sum = function(a, b){
var sum = a + b;
return sum;//通過return可以給方法一個傳回結果
};
//2.函數調用
var result = sum(1,2);
alert(result);
</script>
</head>
<body>
</body>
</html>
1.3 聲明有函數名有參有傳回值函數
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function sum(a, b, c){
return a+b+c;
}
var result = sum(1, 2, 3);
alert(result);
</script>
</head>
<body>
</body>
</html>
1.4 函數的傳回值和函數的引用之間的差別
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
function introduce(){
alert("我叫:" + user.name + ",年齡:" + user.age);
}
//1.建立對象
var user = new Object();
//動态的給對象添加屬性和函數
user.name = "laowang";
user.age = 30;
//user.info = introduce();這是将方法的傳回值交給user.info接收
user.info = introduce;//将函數的引用交給user.info
//獲得對象的屬性:對象.屬性
alert(user.age + "," + user.name);
user.info();
</script>
</head>
<body>
</body>
</html>