国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題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關鍵字專題關鍵字專題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
當前位置: 首頁 - 科技 - 知識百科 - 正文

總結js函數相關知識點

來源:懂視網 責編:小采 時間:2020-11-27 22:18:39
文檔

總結js函數相關知識點

總結js函數相關知識點:要知道,在js中,引用類型是一種數據結構,包含5種引用類型,分別是Object,data,Array,re請輸入代碼gExp,Function。今天我們就說Function這種數據結構。 在js種函數實際上是對象,每個函數都是Function類型的實例。和其他引用類型一樣,都具有屬性和方法。
推薦度:
導讀總結js函數相關知識點:要知道,在js中,引用類型是一種數據結構,包含5種引用類型,分別是Object,data,Array,re請輸入代碼gExp,Function。今天我們就說Function這種數據結構。 在js種函數實際上是對象,每個函數都是Function類型的實例。和其他引用類型一樣,都具有屬性和方法。

要知道,在js中,引用類型是一種數據結構,包含5種引用類型,分別是Object,data,Array,re請輸入代碼gExp,Function。今天我們就說Function這種數據結構。

在js種函數實際上是對象,每個函數都是Function類型的實例。和其他引用類型一樣,都具有屬性和方法。

1. 函數定義有幾種方法

1)函數聲明語法定義

 function sum(num1,num2){
 return num1+num2;
 }

2)函數表達式

注意函數表達式后邊有一個分號;

var sum=function(num1,num2){
 return num1+num2;
}

使用Function 構造函數

使用構造函數可以接收任意數量的參數,但最后一個參數始終被看成是函數體,而前面的參數則枚舉出了參數

var sum=new Function("num1","num2","return num1+num2")

當然第三種方法不友好,也不推薦。

函數名僅僅是指向函數的指針,所以函數名與包含對象指針的其他變量沒有什么不同。也就是說一個函數可能會有多個名字。
在這里函數聲明和函數表達式有什么區別呢?

解析器在向執行環境中加載數據的時候,對函數聲明和函數表達式是不一樣的。解析器首先會讀取函數聲明,并且使得這段函數聲明代碼在任何代碼之前都可調用。這就是我們平時所說的函數聲明提升。函數表達式不一樣,他必須等到函數解析器執行到他所在的代碼塊的時候,才會被真正的執行。比較下面2個例子

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

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

以上代碼會正常執行

再看!

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

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

以上執行器就會報錯!

2.函數沒有重載

如果聲明了2個同名函數,結果是后面的函數覆蓋了前面的函數。

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

var result=sum(2)//202

3.函數的內部屬性

包括this,arguments

具體不再敘述了

4.函數的屬性和方法

函數有2個屬性,length和prototype

length表示函數希望接收命名參數的個數。

function a(name){
 //todo
}
function b(name,age){
 //todo
}
function c(){
 //todo
}

a.length //1
b.length //2
c.length //0

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

每個函數都包含2個非繼承的方法 apply,call

這兩個方法的用途都是在特定的作用域中調用函數,其實就是設置函數體內的this指代的值。

首先。apply()方法接收2個參數,一個是函數運行的作用域,另一個是參數數組,第二個參數可以是數組的實例,也可以是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方法沒有多大的區別。區別就是call方法的第二個參數必須得傳遞的參數一個個列舉出來。

使用call和apply來擴充作用域最大的好處就是對象不和任何方法耦合

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

總結js函數相關知識點

總結js函數相關知識點:要知道,在js中,引用類型是一種數據結構,包含5種引用類型,分別是Object,data,Array,re請輸入代碼gExp,Function。今天我們就說Function這種數據結構。 在js種函數實際上是對象,每個函數都是Function類型的實例。和其他引用類型一樣,都具有屬性和方法。
推薦度:
標簽: 知識 js 函數
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 欧日韩一区二区三区 | 久久一道本 | 欧美日韩国产精品综合 | 国产成人久久777777 | 99久久精品免费 | 国产成人99久久亚洲综合精品 | 亚洲欧美天堂网 | 国产精品久久久久国产精品 | 国产精品久久久久毛片 | 亚洲视频免费在线观看 | 午夜精品久久久久久毛片 | 中文字幕在线视频精品 | 国产欧美日韩亚洲 | 在线观看色视频网站 | 欧美日韩中字 | 精品偷自拍另类在线观看 | 亚州激情 | 日本一区二区三区不卡在线视频 | 国产特级毛片aaaaaa高清 | 欧美日韩精品在线视频 | 日韩视频观看 | 91精品一区二区三区在线播放 | 伊人色综合97 | 在线永久免费观看的毛片 | 欧美v在线 | 久久精品a一国产成人免费网站 | 一区不卡在线观看 | 国产毛片一级国语版 | 成人a网| 一区二区成人国产精品 | 国产最新进精品视频 | 国产成人一区二区三区高清 | 国产精品视频免费观看 | 欧美日韩国产一区二区三区 | 激情一区| 亚洲欧美另类在线观看 | 日韩欧美区 | 亚洲黄色网站视频 | 亚洲一区二区三区久久久久 | 夜夜骑日日操 | 国产伦精品一区二区三区视频小说 |