什么是函數(shù)
函數(shù)就是一段可以反復調用的代碼塊。函數(shù)還能接受輸入的參數(shù),不同的參數(shù)會返回不同的值。
函數(shù)的聲明:
function [函數(shù)名] (){
任意代碼
[return ...]
}
函數(shù)聲明的三種方法
(1)
function sum (a, b){
return a + b
}//函數(shù)聲明語句
(2)
var sum2 = function sum1 (a, b){
return a + b
}
//sum2可以在外面里面都用
//sum1只能在這個花括號里面用,外面用會顯示undefined
//等號右邊是一個函數(shù)表達式
(3)
var sum = function (a, b){
return a + b
}
函數(shù)的調用:
this:第一個參數(shù)(如果this為空 會顯示window)
arguments:第二個到最后一個組成的參數(shù)
(1)指定this
var f = function(){
console.log(‘this’)
console.log(this)
console.log(‘arguments’)
console.log(arguments)
}
var xxx = {name: 'fang'}
f.call{xxx,1,2,3,4,5}
(2)不傳this
var f = function(){
console.log(this)
console.log(arguments)
}
f{1,2,3}
f.apply (undefined, [a,b,c])
形式不一樣實質一樣
f.call (undefined , a, b,c)
f.call (undefined , a, b,c)
等價于
f(a, b, c)
參數(shù)
形式參數(shù)(申明)
實際參數(shù)(實參)
例:
function f(){
var p1 = arguments [0]
var p2 = arguments [1]
}
f(1,2)
arguments = [1,2]
//p1,p2是形式參數(shù)
//(1,2)是實際參數(shù)
函數(shù)和函數(shù)調用的區(qū)別
例:
function f(){
return 1;
}
typeof f //'function'
fypeof f.call()//'number'
typeof f()//'number'
函數(shù)后面不加括號就返回的是它的本身數(shù)據類型
函數(shù)后面加括號返回的是它的值的類據類型
沒有返回值就是undefined