javaScript argument 學習筆記
javaScript argument 學習筆記
1.什麼是 argument
argument是類陣列物件
例子:
function ex1(){
console.log(arguments)
}
ex1(“a”,”A”,0,{foo:”argument”})
執行看結果:
結果是一個陣列,但是不是真正的陣列;是一個類陣列.
再看看arguments代表的內容,其表示了函式執行時傳入函式的所有引數.可以用arguments[n],取得每一個引數.
2.arguments 操作
a)argument length;
arguments 是類陣列物件,包含length屬性;
例子:
function ex2(){
console.log(arguments.length;)
}
ex2();
ex2(1,2);
ex2(1,2,3);
b)arguments 轉陣列
Array.prototype.slice.call(arguments)
[].slice.call(arguments)
滿足一定條件的物件都能被slice方法轉化為陣列.
例子:
const aaa={0:’a’,1:’b’,length:2}
const bbb=[].slice.call(aaa);
console.log(Array.isArray(bbb),bbb);
不能將argument物件洩露出去,否則將會造成極大的效能浪費.
例子:
function ex3(){
return arguments;
}
但可以將其轉化為陣列:
function ex4(){
const arr = new Array(arguments.length)
for(let i=0;i
(let 只對他所在的最內側塊內有效,var的範圍最少在一個函式內)
c)修改argument的值
在嚴格模式與非嚴格模式,修改函式值輸出的結果並不相同:
例子:
function ex5(a){
“use strict”;
console.log(a,arguments[0]);
a=10;
console.log(a,arguments[0]);
arguments[0]=20;
xonsole.log(a,arguments[0]);
}
ex5(1)
例子:
function ex6(a){
console.log(a,arguments[0]);
a=10;
console.log(a,arguments[0]);
arguments[0]=20;
console.log(a,arguments[0]);
}
ex6(a)
d)將引數從一個引數傳輸到另一個函式
function ex71(){
ex72.apply(this,arguments);
}
function ex72(){}
e)arguments與過載
js沒有過載;我們需要使用argument進行模擬
function ex8(aaa,bbb,ccc){
if(argument.length===2){alert(aaa+bbb)}
else if(argument===3){alert(aaa+bbb+ccc)}
}
ex8(111,222);
ex8(111,222,333);
3.ES6中的arguments
a)擴充套件運算子
function ex9(){
console.log(…arguments);
}
ex9(1,2,3);
b)rest
例子
function ex10(firstArg,…restArg){
console.log(Array.isArray(restArg));
console.log(firstArray,restArray);
}
ex10(1,2,3);
c)預設引數
function ex11(firstArg=0,secondArg=1){
console.log(arguments[0],argument[1]);
console.log(firstArg,secondArg);
}
ex11(99);
d)argument 轉陣列
Array.form()
4.陣列與類陣列物件
const obj={0:”a”,1:’b’}
const arr=[“a”,”b”]
物件的鍵值對
陣列的索引
obj的屬性是string
srr的索引是 number
建立類陣列物件:
例子:(得到Array的所有方法)
function ex12(){}
ex12.prototype=Object.crate(Array.prototype);
const ex121=new ex12();
ex121.push(“a”);
例子:(得到部分方法)
function ex13(){}
ex13.prototype.push=Array.prototype.push;
const ex131=new ex13();
ex131.push(‘a’);
ex131.push(‘b’);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2325/viewspace-2807446/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JavaScript 學習筆記JavaScript筆記
- JavaScript學習筆記JavaScript筆記
- JavaScript學習筆記13JavaScript筆記
- JavaScript學習筆記(二)JavaScript筆記
- javascript學習筆記--splice、sliceJavaScript筆記
- 學習JavaScript的原型筆記JavaScript原型筆記
- JavaScript正則學習筆記JavaScript筆記
- JavaScript學習筆記(八)—— 補JavaScript筆記
- JavaScript入門學習學習筆記(上)JavaScript筆記
- JavaScript學習筆記 - 原生函式JavaScript筆記函式
- JavaScript設計模式學習筆記JavaScript設計模式筆記
- javascript學習筆記,二、變數JavaScript筆記變數
- JavaScript入門-學習筆記(一)JavaScript筆記
- JavaScript學習筆記——基礎部分JavaScript筆記
- javascript學習筆記--元字元使用練習JavaScript筆記字元
- JavaScript學習筆記1—快速入門JavaScript筆記
- JavaScript學習筆記1: JS引入方法JavaScript筆記JS
- 《JavaScript語言精粹》學習筆記一JavaScript筆記
- 《JavaScript語言精粹》學習筆記二JavaScript筆記
- JavaScript正規表示式學習筆記(一)JavaScript筆記
- Javascript中的關鍵字'this'學習筆記JavaScript筆記
- Javascript高階程式設計 學習筆記JavaScript程式設計筆記
- 學習筆記:javascript中的Generator函式筆記JavaScript函式
- JavaScript學習筆記(七)—— 再說函式JavaScript筆記函式
- Javascript學習筆記——4.11 賦值表示式JavaScript筆記賦值
- JavaScript學習筆記(一) promise和async/waitJavaScript筆記PromiseAI
- Java學習筆記-Day48 JavaScript(三)筆記JavaScript
- 360星計劃學習筆記-如何學好JavaScript筆記JavaScript
- 360前端星學習筆記-如何學好JavaScript(2)前端筆記JavaScript
- JavaScript中的物件學習筆記(屬性操作)JavaScript物件筆記
- JavaScript中的物件學習筆記(概述和建立)JavaScript物件筆記
- JavaScript學習筆記10: 事件繫結&監聽JavaScript筆記事件
- JavaScript學習筆記(二)——函式和陣列JavaScript筆記函式陣列
- JavaScript 型別、原型與繼承學習筆記JavaScript型別原型繼承筆記
- JavaWeb學習筆記_Day03_JavaScript詳解Web筆記JavaScript
- numpy的學習筆記\pandas學習筆記筆記
- JavaScript DOM 程式設計藝術 學習筆記01JavaScript程式設計筆記
- JavaScript DOM 程式設計藝術 學習筆記 02JavaScript程式設計筆記