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學習筆記(二)JavaScript筆記
- JavaScript學習筆記13JavaScript筆記
- JavaScript學習筆記01JavaScript筆記
- JavaScript學習筆記00JavaScript筆記
- 【JavaScript學習筆記】if使用JavaScript筆記
- Javascript 學習 筆記六JavaScript筆記
- Javascript 學習 筆記五JavaScript筆記
- Javascript 學習 筆記三JavaScript筆記
- Javascript 學習 筆記四JavaScript筆記
- JavaScript入門學習學習筆記(上)JavaScript筆記
- 學習JavaScript的原型筆記JavaScript原型筆記
- JavaScript學習筆記(八)—— 補JavaScript筆記
- javascript學習筆記--splice、sliceJavaScript筆記
- JavaScript正則學習筆記JavaScript筆記
- 【JavaScript學習筆記】hello worldJavaScript筆記
- 【JavaScript學習筆記】畫圖JavaScript筆記
- JavaScript學習筆記---數值JavaScript筆記
- JavaScript學習筆記---緣起JavaScript筆記
- JavaScript設計模式學習筆記JavaScript設計模式筆記
- JavaScript學習筆記 - 原生函式JavaScript筆記函式
- JavaScript學習筆記——基礎部分JavaScript筆記
- javascript學習筆記,二、變數JavaScript筆記變數
- JavaScript入門-學習筆記(一)JavaScript筆記
- javaScript 學習計劃以及筆記JavaScript筆記
- Javascript 學習筆記--語法篇JavaScript筆記
- 【JavaScript學習筆記】滑鼠樣式JavaScript筆記
- 【JavaScript學習筆記】點選消失JavaScript筆記
- JavaScript學習筆記---基本語法JavaScript筆記
- javascript學習筆記--元字元使用練習JavaScript筆記字元
- JavaScript學習筆記1—快速入門JavaScript筆記
- 《JavaScript語言精粹》學習筆記二JavaScript筆記
- 《JavaScript語言精粹》學習筆記一JavaScript筆記
- [心得] JavaScript權威指南學習筆記JavaScript筆記
- 《JavaScript 學習指南》閱讀筆記(一)JavaScript筆記
- 【JavaScript學習筆記】呼叫google搜尋JavaScript筆記Go
- JavaScript學習筆記---資料型別JavaScript筆記資料型別