摘要:在函數(shù)中常常會使用這個鬼來在跟蹤當(dāng)前函數(shù)的參數(shù)傳遞情況今天就來分析一下是如何來跟蹤參數(shù)的實例這種情況下沒有實參的傳遞參數(shù)與沒有建立聯(lián)系兩者相互獨立的還需要說明一點在沒有定義的情況下認(rèn)為是全局變量可是并不是我們想象的那樣實際上在定義形參時函數(shù)
在函數(shù)中,常常會使用arguments[]這個鬼來在跟蹤當(dāng)前函數(shù)的參數(shù)傳遞情況,今天就來分析一下arguments[]是如何來跟蹤參數(shù)的
實例1function fn(x){ x = 10; arguments[0] = 20; console.log(x,arguments[0]); //x = 10; arguments[0] = 20; } fn(); console.log(window.x);// undefined console.log(x);// x is not defined
這種情況下,沒有實參的傳遞,參數(shù)與arguments沒有建立聯(lián)系,兩者相互獨立的.
還需要說明一點: x = 10,在沒有var定義的情況下,認(rèn)為是全局變量,可是并不是我們想象的那樣. 實際上 在定義形參時,函數(shù)內(nèi)部就聲明了一個變量,var x在函數(shù)內(nèi)部聲明.
function fn(x){ arguments[0] = 20; console.log(x,arguments[0]) } fn(); // undefined 和 20
這種情況下,也是沒有傳遞實參,函數(shù)內(nèi)只有var x聲明,但是并沒有賦值,所以x就是undefined,參數(shù)和arguments也沒有建立聯(lián)系.
實例3function fn(x){ x = 10; arguments[0] = 20; console.log(x,arguments[0]); // 20 20 } fn(1);
有實參傳入,此時,參數(shù)和arguments建立聯(lián)系,arguments[0]將x的值覆蓋掉.
實例4function fn(x){ arguments[0] = 20; console.log(x,arguments[0]) //20 20 } fn(1);
實參傳入,與實例3相同,參數(shù)和arguments建立聯(lián)系,arguments[0]將x的值覆蓋掉.
總結(jié)實參,影響著arguments[]與參數(shù)之間的聯(lián)系,
嚴(yán)格模式下,arguments不再追蹤參數(shù)的變化
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78541.html
摘要:除語法不同外,兩者的區(qū)別在于解析器讀取的順序。解析器會事先讀取函數(shù)聲明,即使你把函數(shù)聲明放在代碼的末端也沒關(guān)系。修改對象將可能導(dǎo)致命名參數(shù)失去意義。其實除允許匿名函數(shù)遞歸調(diào)用自身外,并沒有什么太大用處。 javaScript因為其語法松散,導(dǎo)致函數(shù)(尤其是this)看似簡單,其實里面花頭很多。本篇介紹一下JavaScript函數(shù)及其調(diào)用方法。? 函數(shù)聲明和函數(shù)表達(dá)式? ar...
摘要:系列系列列表從看一與箭頭函數(shù)從看二函數(shù)傳參模式與的上一篇說到,對做了以下限定。是另外一個變量,指向不同的值,而這兩個值有相同的類型。函數(shù)中,和指向同一個值,更改的就等于更改了的??梢杂酶倪M(jìn)問題是這個在嚴(yán)格模式下不能運行。 系列 系列列表:從use strict看JS(一):this與箭頭函數(shù)從use strict看JS(二):函數(shù)傳參模式與arguments use strict 的 ...
摘要:但是,這樣做的后果就是,我們會不斷的改變本體,就像把鳳姐送去做整形手術(shù)一樣。在中,我們叫做引用裝飾。所以,這里引入的裝飾模式裝飾親切,熟悉,完美。實例講解裝飾上面那個例子,只能算是裝飾模式的一個不起眼的角落。 裝飾者,英文名叫decorator. 所謂的裝飾,從字面可以很容易的理解出,就是給 土肥圓,化個妝,華麗的轉(zhuǎn)身為白富美,但本體還是土肥圓。 說人話.咳咳~ 在js里面一切都是對...
摘要:從某些方面來講,這章回顧的函數(shù)知識并不是針對函數(shù)式編程者,非函數(shù)式編程者同樣需要了解。什么是函數(shù)針對函數(shù)式編程,很自然而然的我會想到從函數(shù)開始。如果你計劃使用函數(shù)式編程,你應(yīng)該盡可能多地使用函數(shù),而不是程序。指的是一個函數(shù)聲明的形參數(shù)量。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson - 《You-Dont-Know-JS》作者 關(guān)于譯者:...
摘要:返回的綁定函數(shù)也能使用操作符創(chuàng)建對象這種行為就像把原函數(shù)當(dāng)成構(gòu)造器。同時,將第一個參數(shù)以外的其他參數(shù),作為提供給原函數(shù)的預(yù)設(shè)參數(shù),這也是基本的顆?;A(chǔ)。 今天想談?wù)勔坏狼岸嗣嬖囶},我做面試官的時候經(jīng)常喜歡用它來考察面試者的基礎(chǔ)是否扎實,以及邏輯、思維能力和臨場表現(xiàn),題目是:模擬實現(xiàn)ES5中原生bind函數(shù)。也許這道題目已經(jīng)不再新鮮,部分讀者也會有思路來解答。社區(qū)上關(guān)于原生bind的研...
閱讀 995·2021-09-26 10:15
閱讀 2081·2021-09-24 10:37
閱讀 2588·2019-08-30 13:46
閱讀 2638·2019-08-30 11:16
閱讀 2427·2019-08-29 10:56
閱讀 2600·2019-08-26 12:24
閱讀 3484·2019-08-23 18:26
閱讀 2669·2019-08-23 15:43