摘要:為什么會如此呢因為中的參數在內部是用一個數組來表示的。演示原因對象只是與數組類似它并不是的實例,可以通過使用方括號語法訪問它的每一個元素第一個元素第二個元素以此類推使用屬性來確定傳遞進來多少個參數對象可以與命名參數一起使用
前言
筆者在學習ECMAScript中會將arguments對象與數組混淆,現在理解清楚之后特來此記下,希望幫助大家理解。
描述javascript是個很寬松的語言,ECMAScript中函數不介意傳遞進來多少個參數,也不在乎傳進來參數是什么數據類型。即便你定義的函數只接收兩個參數,在調用這個函數時也未必一定要傳遞兩個參數,可以傳遞一個、三個甚至不傳遞參數,解析器也不會有怨言。
為什么會如此呢?
因為ECMAScript中的參數在內部是用一個數組來表示的。
在函數體內可以通過arguments對象來訪問這個參數數組,從而獲取傳遞給函數的每一個參數。
function sayHi(){ alert("Hello " + arguments[0] + "," + arguments[1]); }
原因:arguments對象只是與數組類似(它并不是Array的實例),可以通過使用方括號語法訪問它的每一個元素(第一個元素arguments[0],第二個元素arguments[1],以此類推;使用length屬性來確定傳遞進來多少個參數)
function howManyArgs(){ alert(arguments.length); } howManyArgs("string",45); //2
arguments對象可以與命名參數一起使用:
function doAdd(num1,num2){ if(arguments.length == 2){ alert(arguments[0] + num2); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/99072.html
摘要:本文是本渣在看了中函數的用法之后,寫的一些東西,希望能幫助到大家。同時的用法和數組有點類似,和一樣,表示第一個對象。返回此對象所在的當前函數引用。在使用函數遞歸調用時推薦使用代替函數名本身。 本文是本渣在看了JS中函數arguments的用法之后,寫的一些東西,希望能幫助到大家。 1.arguments對象 在JavaScript中,arguments對象是比較特別的一個對象,實際上是...
摘要:而對于一個普通的對象來說,如果它的所有名均為正整數,同時也有相應的屬性,那么雖然該對象并不是由構造函數所創建的,它依然呈現出數組的行為,在這種情況下,這些對象被稱為類數組對象。 為了保證的可讀性,本文采用意譯而非直譯。 想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你! JS數組slice方法是JS語言中最強大、最常用的內建函數之一。 隨著React和其他面向功能的J...
摘要:四函數的屬性函數的屬性列表這個屬性先略過上述的屬性都可以通過函數名屬性來引用,是形參的個數。如果是函數表達式的話,是空串。看代碼注意嚴格模式下不能訪問對象的屬性 一、new function的用法 1.用法一 此種用法的跟使用{}的區別是:它比較靈活,可以在內部定義變量、函數等 var obj = new function(){ var a = 1; var b = 2;...
摘要:作為對象原型鏈的終點。調用函數時,應該提供的參數沒有提供,該參數等于。它可以用于引用該函數的函數體內當前正在執行的函數。 一 JS 二 CSS 一 JS ==和===的區別 ===叫做嚴格運算符 ==叫做相等運算符嚴格運算符比較時不僅僅比較數值還要比較數據類型是否一樣相等運算符在比較相同類型的數據時,與嚴格相等運算符完全一樣。 在比較不同類型的數據時,相等運算符會先將數據進行類型轉換,...
閱讀 637·2023-04-26 01:53
閱讀 2761·2021-11-17 17:00
閱讀 2895·2021-09-04 16:40
閱讀 1997·2021-09-02 15:41
閱讀 845·2019-08-26 11:34
閱讀 1234·2019-08-26 10:16
閱讀 1343·2019-08-23 17:51
閱讀 833·2019-08-23 16:50