日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

058_JavaScript函数arguments对象

發布時間:2025/4/17 javascript 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 058_JavaScript函数arguments对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 參數規則

1.1. JavaScript函數定義不會為參數(parameter)規定數據類型。

1.2. JavaScript函數不會對所傳遞的參數(argument)實行類型檢查。

1.3. JavaScript函數不會檢查所接收參數(argument)的數量。

2. 參數默認

2.1. 如果調用參數時省略了參數(少于被聲明的數量), 則丟失的值被設置為: undefined。

2.2. 如果函數調用的參數太多(超過聲明), 則可以使用arguments對象來達到這些參數。

3. 函數參數值傳遞

3.1. 如果函數參數非引用類型, 那么函數改變了參數的值, 它不會改變參數的原始值。

3.2. 參數的改變在函數之外是不可見的。

var a = 100;function myFunction(a) {a -= 99; }myFunction(a); document.write('a = ' + a + '<br />'); // 輸出a = 100

4. 函數參數引用傳遞

4.1. 如果函數參數是引用類型, 例如是對象, 如果函數改變了對象屬性, 它也改變了原始值。

4.2. 對象屬性的改變在函數之外是可見的。

var obj = {b: 'zhangsan'};function myFunction(obj) { obj.b = 'lisi'; }myFunction(obj); document.write('b = ' + obj.b + '<br />'); // 輸出b = 'lisi'

4.3. 例子

4.3.1. 代碼

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8" /><title>函數參數值、引用傳遞</title></head><body><script type="text/javascript">var a = 100;var obj = {b: 'zhangsan'};function myFunction(a, obj) {a -= 99; obj.b = 'lisi'; }myFunction(a, obj); document.write('a = ' + a + '<br />');document.write('b = ' + obj.b + '<br />');</script></body> </html>

4.3.2. 效果圖

5. arguments對象

5.1. 在函數代碼中, 使用特殊對象arguments, 開發者無需明確指出參數名, 就能訪問它們。

5.2. 我們可以使用arguments[0]的形式訪問函數參數, 即第一個參數的值(第一個參數位于位置0, 第二個參數位于位置1, 依此類推):

// arguments[0]訪問第一個參數 document.write('第一個參數: ' + arguments[0] + '<br />'); // arguments[1]訪問第二個參數 document.write('第二個參數: ' + arguments[1] + '<br />');

5.3. 實例

5.3.1. 代碼

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8" /><title>arguments訪問參數值</title></head><body><script type="text/javascript">function myFunction(a, b) {// arguments[0]訪問第一個參數document.write('第一個參數: ' + arguments[0] + '<br />'); // arguments[1]訪問第二個參數document.write('第二個參數: ' + arguments[1] + '<br />'); return a * b; }myFunction(8, 9); </script></body> </html>

5.3.2. 效果圖

6. 檢測參數個數

6.1. JavaScript不會驗證傳遞給函數的參數個數是否等于函數定義的參數個數。開發者定義的函數都可以接受任意個數的參數(根據Netscape的文檔, 最多可接受255個), 而不會引發任何錯誤。任何遺漏的參數都會以 undefined傳遞給函數, 多余的參數將忽略。

6.2. arguments對象的length屬性返回函數調用實際參數的個數。

function howManyArgs() {// arguments.length返回函數調用實際參數的個數document.write('該函數有' + arguments.length + '個參數<br />'); }howManyArgs(); howManyArgs(8); howManyArgs(8, 'abc');

6.3. 實例

6.3.1. 代碼

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8" /><title>arguments length屬性</title></head><body><script type="text/javascript">function howManyArgs() {// arguments.length返回函數調用實際參數的個數document.write('該函數有' + arguments.length + '個參數<br />'); }howManyArgs(); howManyArgs(8);howManyArgs(8, 'abc');</script></body> </html>

6.3.2. 效果圖

7. 模擬函數重載

7.1. 可以使用arguments對象判斷傳遞給函數的參數個數, 即可模擬函數重載:

function doAdd() {document.write('doAdd()<br />');var value = 0;for(var i = 0, l = arguments.length; i < l; i++){value += arguments[i];}document.write('value = ' + value + '<br />');return value; }doAdd(); doAdd(8); doAdd(8, 9); doAdd(8, 9, 10);

7.2. 實例

7.2.1. 代碼

<!DOCTYPE html> <html lang="zh-CN"><head><meta charset="utf-8" /><title>arguments模擬函數重載</title></head><body><script type="text/javascript">// 做加法運算的函數function doAdd() {document.write('doAdd()<br />');var value = 0;for(var i = 0, l = arguments.length; i < l; i++){value += arguments[i];}document.write('value = ' + value + '<br />');return value;}function doAdd(a, b) {document.write('doAdd(a, b) a = ' + a + ', b = ' + b + '<br />');var value = 0;for(var i = 0, l = arguments.length; i < l; i++){value += arguments[i];}document.write('value = ' + value + '<br />');return value;}// 就近原則, 調用doAdd(a, b)doAdd(); doAdd(8); doAdd(8, 9);doAdd(8, 9, 10);</script></body> </html>

7.2.2. 效果圖

總結

以上是生活随笔為你收集整理的058_JavaScript函数arguments对象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。