最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

js函數(shù)需要掌握的知識(shí)

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 20:03:04
文檔

js函數(shù)需要掌握的知識(shí)

js函數(shù)需要掌握的知識(shí):要知道,在js中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),包含5種引用類型,分別是Object,data,Array,re請(qǐng)輸入代碼gExp,Function。今天我們就說Function這種數(shù)據(jù)結(jié)構(gòu)。 在js種函數(shù)實(shí)際上是對(duì)象,每個(gè)函數(shù)都是Function類型的實(shí)例。和其他引用類型一樣,都具有屬性和方法。1
推薦度:
導(dǎo)讀js函數(shù)需要掌握的知識(shí):要知道,在js中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),包含5種引用類型,分別是Object,data,Array,re請(qǐng)輸入代碼gExp,Function。今天我們就說Function這種數(shù)據(jù)結(jié)構(gòu)。 在js種函數(shù)實(shí)際上是對(duì)象,每個(gè)函數(shù)都是Function類型的實(shí)例。和其他引用類型一樣,都具有屬性和方法。1

在這里函數(shù)聲明和函數(shù)表達(dá)式有什么區(qū)別呢?
解析器在向執(zhí)行環(huán)境中加載數(shù)據(jù)的時(shí)候,對(duì)函數(shù)聲明和函數(shù)表達(dá)式是不一樣的。解析器首先會(huì)讀取函數(shù)聲明,并且使得這段函數(shù)聲明代碼在任何代碼之前都可調(diào)用。這就是我們平時(shí)所說的函數(shù)聲明提升。函數(shù)表達(dá)式不一樣,他必須等到函數(shù)解析器執(zhí)行到他所在的代碼塊的時(shí)候,才會(huì)被真正的執(zhí)行。比較下面2個(gè)例子

console.log(sum(10,10));

function sum(n1,n2){
 return n1+n2;
}

以上代碼會(huì)正常執(zhí)行

再看!

console.log(sum(10,10));

var sum=function(n1,n2){
 return n1+n2;
}

以上執(zhí)行器就會(huì)報(bào)錯(cuò)!

2.函數(shù)沒有重載

如果聲明了2個(gè)同名函數(shù),結(jié)果是后面的函數(shù)覆蓋了前面的函數(shù)。

function sun(a){
 return a+100;
}
function sun(a){
 return a+200;
}

var result=sum(2)//202

3.函數(shù)的內(nèi)部屬性

  • 包括this,arguments

    具體不再敘述了

  • 4.函數(shù)的屬性和方法

  • 函數(shù)有2個(gè)屬性,length和prototype

  • length表示函數(shù)希望接收命名參數(shù)的個(gè)數(shù)。

    function a(name){
     //todo
    }
    function b(name,age){
     //todo
    }
    function c(){
     //todo
    }
    
    a.length //1
    b.length //2
    c.length //0

    prototype屬性對(duì)于引用類型來說很重要,會(huì)有專門講解,此處不再這贅述。

  • 每個(gè)函數(shù)都包含2個(gè)非繼承的方法 apply,call

  • 這兩個(gè)方法的用途都是在特定的作用域中調(diào)用函數(shù),其實(shí)就是設(shè)置函數(shù)體內(nèi)的this指代的值。

    首先。apply()方法接收2個(gè)參數(shù),一個(gè)是函數(shù)運(yùn)行的作用域,另一個(gè)是參數(shù)數(shù)組,第二個(gè)參數(shù)可以是數(shù)組的實(shí)例,也可以是arguments.

    function sum(num1,num2){
     return num1+num2;
    }
    
    function test1(a,b){
     return sum.apply(this,arguments);
    }
    
    function test2(c,d){
     return sum.apply(this.[c,d]);
    }
    
    console.log(test1(1,1)) //2
    
    console.log(test2(1,1)) //2

    call方法和apply方法沒有多大的區(qū)別。區(qū)別就是call方法的第二個(gè)參數(shù)必須得傳遞的參數(shù)一個(gè)個(gè)列舉出來。

    使用call和apply來擴(kuò)充作用域最大的好處就是對(duì)象不和任何方法耦合。

    相關(guān)推薦:

    JS函數(shù)實(shí)例詳解

    js函數(shù)的按值傳遞參數(shù)

    js函數(shù)的調(diào)用及有關(guān)隱式參數(shù)arguments和this的問題

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    js函數(shù)需要掌握的知識(shí)

    js函數(shù)需要掌握的知識(shí):要知道,在js中,引用類型是一種數(shù)據(jù)結(jié)構(gòu),包含5種引用類型,分別是Object,data,Array,re請(qǐng)輸入代碼gExp,Function。今天我們就說Function這種數(shù)據(jù)結(jié)構(gòu)。 在js種函數(shù)實(shí)際上是對(duì)象,每個(gè)函數(shù)都是Function類型的實(shí)例。和其他引用類型一樣,都具有屬性和方法。1
    推薦度:
    標(biāo)簽: 知道 知識(shí) js
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top